سؤال

الكسوف 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.

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