استخدام JUnit @Rule في عداء JUnit الخاص بـ Eclipse
-
12-12-2019 - |
سؤال
الكسوف 3.7.2
لقد نفذت للتو @Rule
في بعض اختبارات JUnit 4، ولكن عندما أقوم بتشغيلها في Eclipse MethodRule
لا يتم استدعاء الأساليب.يبدو الأمر كما لو أن عداء اختبار Eclipse لا يتعرف على ملف @Rule
التطبيقات ولا تفعل أي شيء خاص مع الحقول الموضحة بها @Rule
.
حتى أنني حاولت استخدام قاعدة الطريقة "القياسية" مثل org.junit.rules.TestName
ولكنه لا يعمل بشكل صحيح (لم يتم إدخال أسماء الاختبار في المثيل).حتى اختبار المثال في JavaDoc لـ TestName
يفشل عند التشغيل في Eclipse.
هل هناك بعض الخدعة؟هل Eclipse ببساطة لا يدعم JUnit قواعد?
المحلول
اتضح أن شخصًا ما قد قام بتضمين ملف JAR "المطلوب" على ما يبدو في مسار فئة وقت التشغيل للمشروع المعني.يقوم JAR بتضمين حزم JUnit، من بين أشياء أخرى لا ينبغي لها ذلك!إذن هناك JAR هذا، المسمى بشيء غير ضار our_runtime_library.jar
يحتوي على بعض التعليمات البرمجية الخاصة بالتطبيق بالإضافة إلى بعض الإصدارات غير المعروفة (ولكنها قديمة) من JUnit وSpring ومن يعرف ماذا أيضًا.عند تشغيل المشروع كاختبار وحدة، كان Eclipse يلتقط JUnit في JAR بدلاً من الإصدار الخاص به (كما ينبغي، دائمًا ما تكون للمكتبات الخاصة بالمشروع الأسبقية)، إصدار (Eclipse) الذي تم بناء المشروع عليه.
ما هذه الفوضى؛الآن لنكتشف من يستحق 50 جلدة على هذا.
نصائح أخرى
يجب أن يعمل، على الأقل في Eclipse الخاص بي (في تضمين JUnit 4.8).حتى تتمكن من إظهار التعليمات البرمجية الخاصة بك.
بالإضافة إلى ذلك، يقول JavaDoc: Note that MethodRule is now deprecated, you should be using TestRule instead.