我在maven pom文件中有一个不同的简单配置文件,可以在正常的测试阶段运行一些集成测试。注意我不想在正常的集成测试阶段运行这些测试,因为我不想构建war和部署等。测试运行正常,就像正常的JUnit测试一样。
所以这是我的个人资料:
<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>
感谢大家的帮助。
答案 0 :(得分:2)
您执行粘贴的实际代码段显然不起作用,因为您在TestSellerSignupWizard
中进行测试时提到了类TestCustomerSignupWizard
。我认为这是一个错字,实际上并不重要,因为在这种情况下,Surefire的默认掩码之一**/Test*.java
与你很吻合。
所以这看起来像是工作解决方案,所以我担心问题是你的测试类路径中没有这个类。你提到这与集成测试有某种关系,所以这个类可能位于src/it/java
而不是src/test/java
,这是Maven的Surefire默认值。如果我是对的,您应该将此课程移至src/test/java
或使用(如您所尝试的)替代Surefire执行但testSourceDirectory
参数已覆盖(link)。