Reqnroll
<PackageReference Include="Tracera.Reqnroll" Version="*" />
يتطلب .NET ≥ 8 وReqnroll ≥ 2 (انظر محوّلات الاختبار الآلي). Tracera.Reqnroll على NuGet.
متغيرات البيئة ووضع التشغيل: محوّلات الاختبار الآلي.
يُحمَّل المكوّن الإضافي تلقائيًا عند الإشارة إلى الحزمة — دون سمة إعداد إضافية.
ربط testCaseId وautotestName
يُفضَّل وضع الوسوم على Scenario:
@tracera.id:42
Scenario: Login
Given the user opens login
إذا لم يُحدَّد اسم مخصّص، فإن autotestName يأخذ قيمة عنوان السيناريو.
داخل تعريف الخطوة:
[When("the user submits valid credentials")]
public void Submit()
{
Tracera.TestCase(42, "e2e/login");
}
Skip
استخدم تخطّي مزوّد اختبارات الوحدة الافتراضي (NUnit Assert.Ignore، xUnit Assert.Skip، …). يُضاف سبب التخطّي إلى النتيجة كـ comment.
الخطوات
خطوات Gherkin تُربط بقسم الاختبار في النتيجة. عشِّ المساعدات بـ Tracera.Step("…", () => { … }) أو Tracera.Step("…", async () => { … }) (يُنتظر الجسم)، أو ضع [Tracera.Step("…")] على دالة (sync وasync Task). إذا كان عنوان [Tracera.Step] فارغًا أو محذوفًا، يصبح عنوان الخطوة اسم الدالة؛ تُملأ {0} / {name} في العنوان من وسائط الدالة. Hooks الخاصة بـ Scenario (Before / After) تذهب إلى Setup / Teardown. Hooks على مستوى Feature لا تُبلَّغ.
[Tracera.Step("add {sku}")]
public void AddSku(string sku) { }
[When("the user checks out with {string}")]
public void Checkout(string sku)
{
AddSku(sku);
Tracera.Step("pay", () => { });
}
التعليقات والأخطاء والمرفقات
التعليقات والأخطاء والمرفقات: محوّلات الاختبار الآلي.
Tracera.Comment("result-level note");
Tracera.Error("result-level error text");
Tracera.Step("open login", () =>
{
Tracera.Comment("landed on login");
});
الاختبارات ذات المعاملات
كل صف Examples يحصل على اسم Scenario بعد ملء <…> بواسطة Reqnroll. ضع @tracera.id: ثابتًا على Outline أو Scenario، أو استدعِ Tracera.TestCase عندما يختلف المعرّف لكل مثال.
@tracera.id:42
Scenario Outline: Login as <login>
Given the user signs in as "<login>"
Examples:
| login |
| ok |
| sso |