هل هناك سمة mbunit لإجراء اختبارات صف التشغيل بالترتيب الذي تم تعريفه

StackOverflow https://stackoverflow.com/questions/3722327

سؤال

لقد جربت غوغلينغ حول هذا ولكن لم أجد شيئًا. في الأساس ، أود تشغيل كل صف بالترتيب الذي حددته. على سبيل المثال ، إذا كان لدي هذا:

[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`
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top