Jal*_*esh 42 integration-testing maven-2 maven-surefire-plugin
我们为maven中的集成测试阶段生命周期定义了数百个测试,并且需要很长时间才能完成.
我想要做的只是运行一个测试integration-test.我试过做:
mvn -Dtest=<my-test> integration-test
Run Code Online (Sandbox Code Playgroud)
但这不起作用.将-Dtest只运行在单元测试目标测试,而不是集成测试阶段.我试过了-Dintegration-test=<my-test>,但是被忽略了.
有没有办法做到这一点 ?
我的配置是:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<executions>
<execution>
<id>surefire-it</id>
<phase>integration-test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<excludes>
<exclude>none</exclude>
</excludes>
<includes>
<include>**/api/**</include>
</includes>
.....
Run Code Online (Sandbox Code Playgroud)
A L*_*Lee 35
如果您正在使用Maven failsafe插件,则可以通过将it.test属性设置为完全限定的测试类名来运行单个集成测试:
mvn -Dit.test=your.TestCase verify
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅failsafe插件文档.
Lyl*_*yle 26
该故障安全文档将有指定的测试,如下所示:
mvn -Dit.test=BrokenIT verify
Run Code Online (Sandbox Code Playgroud)
但是,-Dit.test似乎不再起作用了.相反,用于指定Surefire测试的相同参数显然也适用于Failsafe.例如:
mvn -Dtest=WorksIT verify
Run Code Online (Sandbox Code Playgroud)
我已经提交了一个错误(编辑:在2.12中被关闭为"无法重现")以更正文档.
只需使用 testNG 添加-DfailIfNoTests=false适合我的作品即可。像这样的东西:
mvn integration-test -Dtest=aITest -DfailIfNoTests=false
Run Code Online (Sandbox Code Playgroud)
我不确定 JUnit,但对于 TestNG,策略是定义一个仅包含一个测试的套件 XML 文件,然后在 POM 中配置 Surefire 插件以仅运行该测试。在你的 POM 中,你会有类似这样的内容(免责声明,这未经测试):
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<executions>
<execution>
<phase>integration-test</phase>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>single-test.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
要配置套件文件,请参阅http://testng.org/doc/documentation-main.html
| 归档时间: |
|
| 查看次数: |
27866 次 |
| 最近记录: |