سؤال

هناك الكثير جدا من unittesting أطر هناك .صافي.وجدت هذه الميزة المقارنة: http://xunit.github.io/docs/comparisons.html

أنا الآن على اختيار أفضل واحد بالنسبة لنا.ولكن كيف ؟ هل يهم ؟ واحد الذي هو أكثر دليل على المستقبل و توفير الزخم وراء ذلك ؟ يجب أن نهتم الميزات ؟ في حين xUnit يبدو أن معظم الحديثة و المصممة خصيصا .صافي ، NUnit مرة أخرى يبدو أن الشخص الذي هو على نطاق واسع.MSTest مرة أخرى تتكامل بالفعل في Visual Studio ...

هل كانت مفيدة؟

المحلول

أعرف أن هذا هو الموضوع القديم, ولكن اعتقدت بعد التصويت xUnit.NET.في حين أن معظم اختبارات أخرى الأطر المذكورة كلها الى حد كبير نفس ، xUnit.NET وقد اتخذت فريد جدا, حديث, و المرونة في اختبار وحدة.فإنه يغير المصطلحات ، لذلك لم يعد تحديد TestFixtures و الاختبارات...يمكنك تحديد الحقائق و النظريات حول التعليمات البرمجية الخاصة بك ، والذي يدمج بشكل أفضل مع مفهوم ما هو اختبار من TDD/BDD المنظور.

xUnit.NET هو أيضا في غاية للمد.لها FactAttribute و TraitAttribute السمة الطبقات غير مختومة ، وتوفير للتجاوز قاعدة الأساليب التي تعطيك الكثير من السيطرة على كيفية طرق تلك الصفات تزيين يجب أن يعدم.في حين xUnit.NET في النموذج الافتراضي يسمح لك لكتابة اختبار الطبقات التي تشبه NUnit اختبار المباريات مع طرق الاختبار ، لا تقتصر على هذا النوع من اختبار وحدة على الإطلاق.أنت حر في توسيع إطار دعم BDD على غرار القلق/السياق/مراقبة المواصفات ، كما هو مبين هنا.

xUnit.NET كما يدعم تناسب نمط اختبار مباشرة من خارج منطقة الجزاء مع نظرية السمة المقابلة سمات البيانات.تناسب إدخال البيانات قد تكون محملة من excel أو قاعدة بيانات أو حتى العرف مصدر البيانات مثل مستند Word (من خلال توسيع قاعدة بيانات سمة.) هذا يسمح لك للاستفادة من واحد منصة اختبار لكل وحدة الاختبارات والتكامل الاختبارات التي يمكن أن تكون ضخمة في الحد من المنتج تبعيات و التدريب المطلوب.

مناهج أخرى إلى اختبار يمكن أيضا أن تنفذ مع xUnit.صافي...الإمكانيات جدا لا حدود لها.جنبا إلى جنب مع آخر نتطلع ساخرا الإطار ، موك, اثنين إنشاء مرنة جدا, الموسعة, و منصة قوية لتنفيذ الاختبار الآلي.

نصائح أخرى

NUnit هو على الأرجح الأكثر تدعمها 3rd الطرف الأدوات.انها أيضا قد حول لفترة أطول من الثلاثة الأخرى.

أنا شخصيا لا أهتم كثيرا حول اختبار وحدة الأطر ساخرا المكتبات IMHO أهم بكثير (و قفل لك في أكثر من ذلك بكثير).مجرد اختيار واحد والتمسك به.

أنا لن أذهب مع MSTest.على الرغم من أنه على الأرجح في المستقبل دليل على أطر العمل مع Microsoft وراء ذلك ليس الحل الأكثر مرونة.فإنه لن يتم تشغيل الوقوف وحدها دون بعض الخارقة.بحيث تعمل على بناء الخادم أخرى من TFS بدون تثبيت Visual Studio هو الثابت.Visual studio اختبار عداء هو في الواقع أبطأ من Testdriven.Net + أي من أطر أخرى.و لأن الإصدارات من هذا الإطار ترتبط الإصدارات من Visual Studio هناك أقل من التحديثات إذا كان لديك للعمل مع كبار السن VS كنت مرتبطة قديمة MSTest.

أنا لا أعتقد أنه يهم الكثير من أطر أخرى يمكنك استخدامها.انها حقا من السهل للتبديل من واحد إلى آخر.

وأنا شخصيا استخدام XUnit.Net أو NUnit اعتمادا على تفضيل بلدي زملاء العمل.NUnit هو الأكثر القياسية.XUnit.Net هو الأصغر حجما الإطار.

تعتبر المكمل ، وليس استبدال ، MSTest مع آخر اختبار الإطار.يمكنك الاحتفاظ Visual Studio MSTest التكامل في حين الحصول على فوائد أكثر كامل المواصفات إطار اختبار.

على سبيل المثال انا استخدم xUnit مع MSTest.إضافة مرجع إلى xUnit.dll الجمعية فقط أن تفعل شيئا مثل هذا.المستغرب, انها تعمل فقط!

using Microsoft.VisualStudio.TestTools.UnitTesting;
using Assert = Xunit.Assert;  // <-- Aliasing the Xunit namespace is key

namespace TestSample
{
    [TestClass]
    public class XunitTestIntegrationSample
    {
        [TestMethod]
        public void TrueTest()
        {
            Assert.True(true);  // <-- this is the Xunit.Assert class
        }

        [TestMethod]
        public void FalseTest()
        {
            Assert.False(true);
        }
    }
}

انها ليست صفقة كبيرة على الصغيرة/النطاق الشخصي ، ولكن يمكن أن تصبح أكبر صفقة بسرعة على نطاق أوسع.صاحب العمل هو كبير Microsoft المحل ، ولكن لن/لا تستطيع شراء فريق النظام/TFS لعدد من الأسباب.نحن نستخدم حاليا التخريب + دلافين أوكرا + MBUnit + TestDriven.NET وأنه يعمل بشكل جيد, ولكن الحصول على TD.NET كان ضخمة من المتاعب.الإصدار حساسية MBUnit + TestDriven.NET هو أيضا متاعب كبيرة, و وجود أحد تجارية إضافية الشيء (TD.NET) القانونية لمراجعة المشتريات للتعامل مع وإدارة أليس تافهة.بلدي الشركة ، مثل الكثير من الشركات الدهون و سعيدة مع MSDN نموذج الاشتراك, و هذا ليس المستخدمة في معالجة واحد من الصفقات مئات من المطورين.وبعبارة أخرى ، فإن متكاملة MS العرض ، بينما بالتأكيد ليست دائما أفضل من الخبز ذو قيمة كبيرة-إضافة في رأيي.

أعتقد أننا سنبقى مع خطوة الحالي لأنه يعمل و لقد حصلت بالفعل على رابية من الناحية التنظيمية ، ولكن أنا بالتأكيد لا أتمنى MS كانت مقنعة تقدم في هذا المجال حتى نستطيع توحيد وتبسيط dev كومة قليلا.

Nunit لا تعمل بشكل جيد مع وضع مختلط المشاريع في C++ لذلك كان علي أن تسقطها

انها ليست صفقة كبيرة ، فإنه من السهل جدا للتبديل بينهما.MSTest يجري المتكاملة ليست صفقة كبيرة ، أما مجرد الاستيلاء على testdriven.net.

مثل السابق قال الشخص اختيار ساخرا الإطار المفضل في هذه اللحظة هو موك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top