如下所示。
我想要一种方法来跳过我的dao测试。试图避免定义套件的开销。
使用CI,我希望每晚有一个运行所有测试和另一个5分钟的SCM调查,只运行“快速”测试。
mvn -DskipPattern=**.dao.** test
答案 0 :(得分:40)
让我延伸肖恩的回答。这是您在pom.xml
中设置的内容:
<properties>
<exclude.tests>nothing-to-exclude</exclude.tests>
</properties>
<profiles>
<profile>
<id>fast</id>
<properties>
<exclude.tests>**/*Dao*.java</exclude.tests>
</properties>
</profile>
</profiles>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludes>
<exclude>${exclude.tests}</exclude>
</excludes>
</configuration>
</plugin>
然后在CI中,你就像这样开始:
mvn -Pfast test
就是这样。
答案 1 :(得分:18)
当然,没问题:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.6</version>
<configuration>
<excludes>
<!-- classes that include the name Dao -->
<exclude>**/*Dao*.java</exclude>
<!-- classes in a package whose last segment is named dao -->
<exclude>**/dao/*.java</exclude>
</excludes>
</configuration>
</plugin>
<强>参考:强>
(无法通过命令行配置排除,因此如果要有条件地启用此行为,则必须定义配置文件并在命令行上激活该配置文件)
答案 2 :(得分:2)
可以使用命令行排除测试;使用!
排除。
注意:我不确定,但可能需要2.19.1或更高版本的万无一失。
示例:
这不会运行TestHCatLoaderEncryption
mvn install '-Dtest=!TestHCatLoaderEncryption'
排除包裹:
mvn install '-Dtest=!org.apache.hadoop.**'
这也可以与正滤波器结合使用。以下将运行0测试:
mvn install '-Dtest=Test*CatLoaderEncryption,!TestHCatLoaderEncryption'