هل هناك سمة mbunit لإجراء اختبارات صف التشغيل بالترتيب الذي تم تعريفه
-
03-10-2019 - |
سؤال
لقد جربت غوغلينغ حول هذا ولكن لم أجد شيئًا. في الأساس ، أود تشغيل كل صف بالترتيب الذي حددته. على سبيل المثال ، إذا كان لدي هذا:
[Row("a")]
[Row("b")]
[Row("c")]
[Test]
public void Test(string s)...
أريد أن أتأكد من تنفيذ الاختبار A قبل الاختبار B ، ويتم تنفيذ الاختبار B قبل الاختبار C.
المحلول
كما هو محدد في ج# مواصفات اللغة (صفحة 375):
الترتيب الذي يتم فيه تحديد السمات (...) ليس كبيرًا. على سبيل المثال ، تكون مواصفات السمة [A] [B] و [B] [A] و [A و B] و [B ، A] مكافئة.
لذلك ، لا يمكنك أبدًا الاعتماد على الترتيب الذي يتم به تحديد السمات. لحسن الحظ، جاليو/مبونيت يوفر معلمة اختيارية مريحة لمعظم سماتها التي تتغلب على هذا الحد من اللغة. تحتاج إلى استخدام المعلمة الاختيارية ترتيب.
[Row("a", Order = 1)]
[Row("b", Order = 2)]
[Row("c", Order = 3)]
[Test]
public void Test(string s)
{
}
يرجى ملاحظة ذلك Order
يعمل على سمات أخرى كذلك. على وجه الخصوص يمكن استخدامه على [Test]
لتحديد الترتيب الذي يجب أن يتم فيه الاختبارات في المباراة.
خلاف ذلك ، من أجل ربط معلمة اختبار واحدة كما هو موضح في مثالك ، قد تجد أسهل في الاستخدام [Column]
بدلاً من [Row]
; ؛ والتخلص من أي قيود طلب السمة عن طريق استبدال 3 سمات فقط 1:
[Test]
[Column("a", "b", "c")]
public void Test(string s)
{
}
نصائح أخرى
Include 'MbUnit.Framework.TestSequence(1)' and use ProcessTextFixture instead of TextFixture.
[ProcessTextFixture]
public class TestSequeunce
{
[MbUnit.Framework.TestSequence(1)]
[TEST]
public void TestMethod1()
{
}
[MbUnit.Framework.TestSequence(2)]
[TEST]
public void TestMethod1()
{
}`enter code here`
}