سؤال

لديّ جناح اختبار Junit 4 مع أساليب Beforeclass و Refercass التي تجعل الإعداد/التمزق لفئات الاختبار التالية. ما أحتاجه هو تشغيل فصول الاختبار أيضًا من قبلهم ، ولكن من أجل ذلك ، أحتاج إلى سيناريو الإعداد/المسيلة (Befereclass وبعد الفئة أو شيء من هذا القبيل) لكل فئة اختبار. الشيء هو أنه عندما أقوم بتشغيل الجناح ، لا أريد تنفيذ الإعداد/teardown قبل وبعد كل فصل اختبار ، أريد فقط تنفيذ الإعداد/teardown من مجموعة الاختبار (مرة واحدة). هل هو ممكن ؟ شكرا لك مقدما.

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

المحلول

لا أعرف أي طريقة قياسية للقيام بذلك مع Junit. سبب ذلك ، كما تعلمون بالفعل ، هو أن حالات الاختبار الخاصة بك يجب أن تعمل بشكل مستقل عن بعضها البعض. هذا يتعلق بطرق الإعداد/المسيل للدم "العادية" التي تعمل قبل وبعد كل طريقة اختبار. يختلف إعداد الفصل والدموع قليلاً - على الرغم من أنني ما زلت أفضل إجراء اختباراتي بشكل مستقل والبقاء خارج منطقة المتاعب.

ومع ذلك ، إذا كنت مقتنعًا حقًا بما تفعله ، فيمكنك استخدام علامة عالمية للإشارة إلى ما إذا كان إعداد/extupdown الفئة يجب تشغيله أم لا ، والتحقق من حالتها في أساليب الإعداد/المسيل للدم. في جناح الاختبار الخاص بك ، يمكنك تضمين فئة خاصة كأول فئة ، والتي لا تفعل شيئًا أكثر من تنفيذ الإعداد وتعيين العلم العالمي للإشارة إلى حالات الاختبار الحقيقية التي يجب عدم تشغيل أساليب الإعداد/التمزق في الفصل. وبالمثل ، يمكن لفئة خاصة خاصة في الجناح تنفيذ رمز teardown. التحذير هو أنني أخشى أن Junit لا يضمن ترتيب تنفيذ فئات الاختبار داخل جناح ، على الأرجح أنه ينفذها بالترتيب المحدد - ولكن هذه مجرد تفاصيل تنفيذ. جربه ، قد ينجح الأمر من أجلك - ولكن لا يوجد ضمان أنه سيفعل دائمًا ما تتوقعه.

نصائح أخرى

إذا كان لديك Junit 4.7+ أوصي بالبحث في الميزة الجديدة التي تسمى القواعد (والتي يتم شرحها في منشور المدونة هذا). قد لا يكونون بالضبط ما تريده ، لكنهم ربما يكونون أفضل ما تحصل عليه مع Junit.

من المفترض أن يكون لدى TestNG إمكانيات تجميع أفضل لتجميع ، لكنني لم أنظر إليها بنفسي حقًا.

لا ، لا توجد طريقة قياسية للقيام بذلك في Junit ، على الرغم من أنه يمكنك اختراق شيء كما اقترح Péter Török.

لاحظ مع ذلك أنك تسيء إلى حد ما في القيام بذلك. بيت القصيد من الوحدة يختبرون أنهم كذلك لا يعتمد من بعضها البعض. وذلك لأن التبعيات بين الاختبارات تخلق كابوس الصيانة الكلي (اختبارات الفشل لأن التشغيل بالترتيب الخاطئ).

لذلك أنصحك أن تفكر بشدة إذا كان من الأفضل تشغيل الإعداد دائمًا ...

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