我有多个 Junit 测试套件(SlowTestSuite、FastTestSuite 等)。我想使用 maven 命令只运行特定的套件。例如
mvn clean install test -Dtest=FastTestSuite -DfailIfNoTests=false
但它不工作。只是根本没有运行任何测试。请有任何建议。
我有多个 Junit 测试套件(SlowTestSuite、FastTestSuite 等)。我想使用 maven 命令只运行特定的套件。例如
mvn clean install test -Dtest=FastTestSuite -DfailIfNoTests=false
但它不工作。只是根本没有运行任何测试。请有任何建议。
我通过在 pom 中添加属性来实现这一点:
<properties>
<runSuite>**/FastTestSuite.class</runSuite>
</properties>
和 maven-surefire-plugin 应该是:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includes>
<include>${runSuite}</include>
</includes>
</configuration>
</plugin>
所以这意味着默认情况下它将运行 FastTestSuite 但您可以使用 maven 命令运行其他测试,例如 SlowTestSuite:
mvn install -DrunSuite=**/SlowTestSuite.class -DfailIfNoTests=false
您错过的关键字是 maven-surefire-plugin :http://maven.apache.org/plugins/maven-surefire-plugin/。
用法是:
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.1</version>
<configuration>
<includes>
<include>**/com.your.packaged.Sample.java</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
[...]
</project>
如果您对堆栈溢出进行一些搜索,您可能会找到信息:
使用 maven-failsafe-plugin 在 Maven 中运行 JUnit4 测试套件 使用带有 Maven Failsafe 插件的 JUnit 类别
此外,您可以定义配置文件,如 fastTest,将通过向 cmd 行添加参数来触发:
mvn package -PfastTests
该配置文件也将包含一些内容。