Ral*_*lph 5 java testing maven
我有两种单元测试(不是集成测试).由于Spring Security的一些奇怪行为,我需要先运行所有正常测试,然后再运行安全测试.
我正在使用Junit(所以我不能使用任何TestNG组).
所以我所做的是指定两组包含并排除规则.
<excludes>
<exclude>**/*SecurityTest.java</exclude>
</excludes>
<includes>
<include>**/*Test.java</include>
<include>**/*Tests.java</include>
</includes>
Run Code Online (Sandbox Code Playgroud)
和
<excludes>
</excludes>
<includes>
<include>**/*SecurityTest.java</include>
</includes>
Run Code Online (Sandbox Code Playgroud)
如果我用手在我的pom中更换它们,那么我可以进行正常或安全测试.但是我当然希望在每个版本中运行这两种测试.
我的第一次尝试是有两个完整的maven-surefire-plugin配置.但是后来maven只考虑了他们中的最后一个.
我的下一个尝试是使用两个execution
定义,但是然后surefire似乎完全忽略了规则并且混合了两种测试.
所以我的一般问题是如何为maven surefire指定两个文件集,以便它们将被逐个执行?更具体地说明如何指定两个不同的文件集.
执行配置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.9</version>
<configuration>
<junitArtifactName>junit:junit</junitArtifactName>
<encoding>UTF-8</encoding>
<inputEncoding>UTF-8</inputEncoding>
<outputEncoding>UTF-8</outputEncoding>
<argLine>-Xms256m -Xmx512m -XX:MaxPermSize=128m -ea</argLine>
</configuration>
<executions>
<execution>
<id>normal-tests</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<excludes>
<exclude>**/Abstract*.java</exclude>
<exclude>**/*_Roo_*</exclude>
<exclude>**/*SecurityTest.java</exclude>
</excludes>
<includes>
<include>**/*Test.java</include>
<include>**/*Tests.java</include>
</includes>
</configuration>
</execution>
<execution>
<id>security-tests</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<excludes>
<exclude>**/Abstract*.java</exclude>
<exclude>**/*_Roo_*</exclude>
</excludes>
<includes>
<include>**/*SecurityTest.java</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
您还没有更改绑定到superpom中测试阶段的默认surefire执行,因此它仍然使用其默认配置运行.该执行的id是"default-test".您需要覆盖它以将其从测试阶段解除绑定,否则只需将该ID用于您自己的一个执行.
归档时间: |
|
查看次数: |
3535 次 |
最近记录: |