2014-11-26 2 views
0

У меня есть проект на основе муравья и плюща, и я также использую плющ для загрузки зависимостей. По некоторым причинам, один из этих проектов начал сообщать странный сбой при использовании муравья 1.9:Задача junit в ant 1.9 с плюсом не работает с junit.framework.AssertionFailedError: тестов не найдено

junit.framework.AssertionFailedError: No tests found in name.of.my.Clazz 

Это странно, потому что я аннотированные методы испытаний в моем классе uisng в JUnit4 @Test аннотацию, так что должно быть множество тестовых случаев.

ответ

3

Короткий ответ: убедитесь, что вы зависите от муравьиный junit4 не только муравей JUnit.

Мне пришлось посмотреть на источники, чтобы справиться с этим. Основная проблема здесь в том, что задача муравья <junit> попытается запустить тестовый пример с использованием семантики JUnit3, и в соответствии с этим не будут найдены тестовые примеры. Причина, по которой он не использует режим JUnit4, заключается в том, что поддержка муравья JUnit4 представляет собой отдельный пакет для Maven или Ivy, а именно org.apache.ant#ant-junit4, который зависит от org.apache.ant#ant-junit, но предоставляет дополнительные классы. В частности, без этого пакета JUnitTestRunner не сможет загрузить CustomJUnit4TestAdapterCache и, следовательно, вернуться к стилю JUnit3. По крайней мере, с this commit.

Существует someotherquestions вокруг этого сообщения об ошибке, но они предшествуют фиксации, о которой я упомянул, поэтому, я думаю, они должны иметь разные причины. Ответы, похоже, поддерживают эту точку зрения. Вот почему я подал свой собственный вопрос и ответ.