NUnit
<PackageReference Include="Tracera.NUnit" Version="*" />
يتطلب .NET ≥ 8 وNUnit ≥ 4 (انظر محوّلات الاختبار الآلي). Tracera.NUnit على NuGet.
متغيرات البيئة ووضع التشغيل وإعادة المحاولة: محوّلات الاختبار الآلي.
مفتاح Env عند إعادة المحاولة: NUNIT_RETRY.
فضّل سمة الـ assembly حتى يتمكّن المحوّل من إنهاء التشغيل الذي أنشأه عند انتهاء المجموعة. السمة على صنف الاختبار وحدها ما زالت ترفع النتائج، لكن إنهاء التشغيل قد ينتظر حتى يخرج العملية:
[assembly: TraceraNUnit]
[TraceraNUnit] // optional on a test class when the assembly attribute is present
public class LoginTests
{
// …
}
ربط testCaseId وautotestName
استخدم واجهات NUnit القياسية كالمعتاد، والنوع العام Tracera.
عند التصريح (المفضّل — الربط يعمل حتى لو تخطّى الاختبار مبكرًا):
using NUnit.Framework;
[assembly: TraceraNUnit]
public class LoginTests
{
[Test]
[Tracera.Id(42, name: "e2e/login")]
public void Login()
{
Assert.That(true);
}
}
داخل الاختبار:
[Test]
public void Login()
{
Tracera.TestCase(42, "e2e/login");
Assert.That(true);
}
Skip
استخدم تخطّي NUnit الافتراضي (Assert.Ignore، Assert.Inconclusive، [Ignore]، …). يُضاف سبب التخطّي إلى النتيجة كـ comment.
الخطوات
استخدم Tracera.Step("…", () => { … }) أو Tracera.Step("…", async () => { … }) (يُنتظَر اكتمال الـ async lambda)، أو ضع [Tracera.Step("…")] على دالة (sync وasync Task). إذا كان عنوان [Tracera.Step] فارغًا أو محذوفًا، يصبح عنوان الخطوة اسم الدالة؛ تُملأ {0} / {name} في العنوان من وسائط الدالة. الخطوات داخل [SetUp] / [TearDown] تذهب إلى الإعداد / التنظيف في النتيجة؛ وداخل الاختبار إلى الاختبار. خطوات [OneTimeSetUp] / [OneTimeTearDown] لا تُبلَّغ؛ إذا فشل OneTimeSetUp، تُبلَّغ الاختبارات المرتبطة تصريحيًا كـ Failed (خطوات فارغة، وخطأ الإعداد على النتيجة).
using NUnit.Framework;
[assembly: TraceraNUnit]
public class CheckoutTests
{
[SetUp]
public void OpenShop()
{
Tracera.Step("open shop", () => { });
}
[Tracera.Step("add {sku}")]
public void AddSku(string sku) { }
[Test]
[Tracera.Id(10, name: "e2e/checkout")]
public void Checkout()
{
AddSku("SKU-1");
Tracera.Step("pay", () => { });
}
}
التعليقات والأخطاء والمرفقات
التعليقات والأخطاء والمرفقات: محوّلات الاختبار الآلي.
Tracera.Comment("result-level note");
Tracera.Error("result-level error text");
Tracera.Step("open login", () =>
{
Tracera.Comment("landed on login");
});
الاختبارات ذات المعاملات
ضع [Tracera.Id] على كل دالة بـ [TestCase] / [TestCaseSource] (نفس المعرّف لكل صف، أو استدعِ Tracera.TestCase داخلًا عندما يختلف المعرّف). يمكن أن يتضمن name الاختياري عناصر نائبة: {login} (وأسماء وسائط أخرى) من معاملات الدالة، أو {param_id} لاسم اختبار NUnit (في المثال أدناه Login("ok") / Login("sso")). إذا لم يُحدَّد name، فإن autotestName يأخذ قيمة اسم اختبار NUnit.
[Tracera.Id(42, name: "login as {login}")]
[TestCase("ok")]
[TestCase("sso")]
public void Login(string login)
{
Assert.That(login, Is.Not.Empty);
}