JUnit Category не будет запускать определенные тесты

У меня есть проект с тестами. У меня есть класс AllTests, настроенный с Suite бегуном для каждого пакета, и у меня есть главный AllTest, который объединяет все остальные AllTest классы. Мастер также управляется Suite.

Я определил интерфейс IntegrationTest, а также класс IntegrationTestSuite. IntegrationTestSuite управляется Categories и в качестве SuiteClass я указываю мастер AllTests, также добавил аннотацию IncludeCategory с IntegrationTest.class. В нескольких тестах я использую аннотацию @Category(IntegrationTest.class) на уровне класса, чтобы включить некоторые тесты в пакет интеграции.

У меня есть несколько тестовых классов, которые запускаются PowerMockRunner, а также аннотируются @Category(IntegraionTest.class). Моя проблема в основном в том, что некоторые из этих тестов выполняются моей сборкой Gradle, а некоторые просто пропускаются. Если я удаляю аннотацию PrepareForTest для пропущенных тестов, я получаю сообщение об ошибке, что powermock не был корректно настроен, и эти сообщения об ошибках также отображаются в отчете, в противном случае это просто тишина.

Странно то, что в течение короткого периода времени, когда я запускал тот же набор в Eclipse, он мог находить и запускать те тесты, которые были пропущены. Но через некоторое время Eclipse JUnit runner тоже забыл об этих тестах и ​​теперь не будет их запускать при запуске пакета. Если я запускаю эти тесты напрямую, они выполняются успешно.

Любая идея, что я делаю неправильно, или где я могу проверить, что происходит не так? Использование переключателей gradle --stacktrace или --debug не помогло, в выводе не было информации об этих тестах.

Спасибо!


person user1405469    schedule 29.10.2013    source источник


Ответы (1)


Я упомянул, что использую PowerMock в тестах. Оказывается, PowerMockRunner загружает класс интерфейса IntegrationTest с помощью другого загрузчика классов, чем загрузчик классов пакета. Это было так: тест junit isAssignableFrom потерпит неудачу при определении того, какие тесты запускать. -> Отсутствует одна запись из @PowerMockIgnore.

person user1405469    schedule 29.10.2013