2013-03-26 4 views
2

Я работаю над проектом, написанным с использованием Maven.Maven Unit Tests

Если я

mvn clean install 

, то я ожидаю, что он будет работать на все модульные тесты под /test Forder.

Я перенаправил процесс сборки и сохранил его в выходной файл и попытался выяснить модульные тесты по имени. Однако я не смог найти некоторые из модульных тестов. Похоже, что некоторые из модульных тестов фактически не выполнялись во время процесса сборки.

Вопрос заключается в том, как узнать выбор модульных тестов, которые будут выполняться во время процесса сборки.

+3

Возможно, вы уже знаете это и не имеете никакого отношения к вашей проблеме, но по умолчанию mvn запускает только модульные тесты классов, имена которых начинаются или заканчиваются словом «Test», например TestBogosort или PrimeFinderTest (в любом пакете в src/test/java) – dspyz

+0

Кроме того, перед запуском вы можете просто распечатать все свои имена до stderr. Это грубо, но это скажет вам. – dspyz

ответ

2

Вы можете попробовать явно назвать группу (ы) в командной строке, как это:

mvn clean install -Dtest.groups="unit,integration" 

или просто

mvn test -Dtest.groups="unit,integration" 

Это пример того, что я использую ежедневно. Мои тесты либо в блоке или интеграции группы. Если вы хотите запустить все (или некоторые) тесты без необходимости явно указывать, какие gorups использовать, вам нужно изменить конфигурацию maven.

тесты
+1

Это неправильный способ запустить интеграционные тесты, потому что они должны работать в течение фазы жизненного цикла интеграции испытаний, который после упаковки фазы, кроме того, она обрабатывается с помощью Maven-безотказного-плагина вместо Maven-плагин-верного. – khmarbaise

+0

Мы использовали этот подход довольно долго, и у меня не было никакого негативного опыта. –

2

Блок в Maven будет выбран по имени, которое должно следовать naming convention

<includes> 
<include>**/*Test*.java</include> 
<include>**/*Test.java</include> 
<include>**/*TestCase.java</include> 
</includes> 

Кроме того, вы должны поместить тесты в папку по умолчанию SRC/тест/Java/.

Вы можете контролировать запуск только один тест с помощью:

mvn -Dtest=MyTest test 

Запуск теста интеграции является работа в maven-failsafe-plugin который обрабатывается в интегрально-фазе тестирования. Соглашение об именовании для интеграции тестов:

<includes> 
<include>**/*IT*.java</include> 
<include>**/*IT.java</include> 
<include>**/*ITCase.java</include> 
</includes> 

Чтобы получить интеграционные тесты запуска необходимо добавить конфигурации части для Maven-безотказного-плагина.

+0

Чем ты, у меня были мои тесты, имена xxxTests, как только я перешел на xxxTest, их подхватили. – Airborne