2012-05-21 2 views
3

Затмение 3.7.2Использование JUnit @Rule в JUnit бегуна в Eclipse

Я просто реализован в некоторых JUnit 4 тестов в @Rule, но когда я запускаю их в затмении MethodRule методы не называют. Это похоже на то, что тестировщик Eclipse не распознает реализации @Rule и не делает ничего особенного с полями, которые аннотируются с помощью @Rule.

Я даже попытался использовать «Стандартный» MethodRule как org.junit.rules.TestName, но он не работает должным образом (имена теста не заполняются в экземпляре). Даже пример теста в JavaDoc TestName не работает при запуске в Eclipse.

Есть ли какой-то трюк? Eclipse просто не поддерживает JUnit Rules?

ответ

4

Оказалось, что кто-то включил кажущуюся «требуемую» JAR в пул классов выполнения проекта, о котором идет речь. Этот JAR включает, помимо прочего, пакеты JUnit! Таким образом, этот JAR назвал что-то безобидное, например our_runtime_library.jar, которое имеет некоторый код приложения, а также некоторые неизвестные (но старые) версии JUnit, Spring, и кто знает, что еще. При запуске проекта в качестве модульного теста Eclipse собирал JUnit в этом JAR вместо своей собственной версии (как это должно быть, у библиотек, специфичных для проекта, всегда имеет преимущество), версии (Eclipse), с которой построен проект.

Какой беспорядок; теперь, чтобы выяснить, кто заслуживает 50 обложек для этого.

2

Он должен работать, по крайней мере, в моем Eclipse (в встроенном JUnit 4.8). Итак, вы можете показать свой код.

Дополнительная информация, JavaDoc говорит: Note that MethodRule is now deprecated, you should be using TestRule instead.