2012-04-24 2 views
1

У меня есть простой профиль в моем файле maven mom, чтобы выполнить некоторые интеграционные тесты в течение обычной фазы тестирования. Примечание. Я не хочу запускать эти тесты во время обычной фазы интеграции, потому что я не хочу строить войну и развертывать и т. Д. Тесты выполняются нормально, как обычные тесты JUnit.Maven не работает тесты, указанные в профиле

Так вот мой профиль:

<profile> 
    <id>AdminSeltests</id> 
    <build> 
    <plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-surefire-plugin</artifactId> 
     <version>2.12</version> 

     <configuration> 
      <includes> 
      <include>**/*/TestSellerSignupWizard.java</include> 
      </includes> 
     </configuration> 

     <executions> 
     <execution> 
     <id>execution2</id> 
     <phase>test</phase> 
     </execution> 
     </executions> 
    </plugin> 
    </plugins> 
    </build> 
</profile> 

Мой тест называется:

com.xxxxx.xxx.client.selenium.seller_signup.TestCustomerSignupWizard 

Однако, когда я запускаю выше профиль с:

mvn test -P AdminSeltests 

Никакие испытания не выполняются. Я использовал следующие значения:

<include>**/TestSellerSignupWizard.*</include> 
<include>**/TestSeller*.*</include> 
<include>**/TestSeller*.java</include> 
<include>**/*/TestSeller*.java</include> 
<include> 
    com.xxxxx.xxx.client.selenium.seller_signup.TestCustomerSignupWizard.java 
</include> 

Ни одна из этих работ не работает.

Любые идеи кто-нибудь?

Благодаря Адам

РЕШИТЬ: Я использую maven-surefire-plugin и это имеет автоматический includes раздел, который включает в свой нормальный тест вещи. Так что я сделал exclude конфигурацию, чтобы исключить обычные юнит-тесты, а затем в include секцию включить топот интеграционного теста, который я хочу запустить

Не знаю, почему он работает именно так, но это делает:

<configuration> 
    <excludes> 
     <exclude>**/Test*.java</exclude> 
     <exclude>**/*Test.java</exclude> 
     <exclude>**/*TestCase.java</exclude> 
    </excludes> 
    <includes> 
     <include>**/ITTestSellerSignupWizard.java</include> 
    </includes> 
</configuration> 

Спасибо за вашу помощь.

ответ

2

Фактическая часть кода, который вы вставляете, явно не работает, потому что вы упоминаете класс TestSellerSignupWizard, имея тесты в TestCustomerSignupWizard. Я предполагаю, однако, что это опечатка, которая не имеет значения, потому что одна из маски по умолчанию для Surefire для включения - **/Test*.java, которая хорошо подходит вам в этом случае.

Таким образом, все это похоже на рабочее решение, поэтому я боюсь, что проблема заключается в том, что у вас нет этого класса в вашем тестовом классе. Вы упомянули, что это как-то связано с интеграционным тестированием, поэтому, вероятно, этот класс находится в src/it/java, а не src/test/java, который по умолчанию является Maven для Surefire. Если я прав, вы должны переместить этот класс в src/test/java или использовать (как вы пытались) альтернативное исполнение Surefire, но с параметром переопределения testSourceDirectory (link).

+0

Вы правы насчет опечатки. Тест находится в целевых \ test-classes \ com \ *** \ admin \ client \ selenium \ seller_signup \ TestSellerSignupWizard.class Так должно быть на пути к классам. Если я запускаю «mvn test», все работает нормально. :-( –

+0

Попробуйте переместить '' в ''. –

Смежные вопросы