当我运行maven clean install
时,它总是执行src/test/java
中的所有测试有没有办法跳过所有测试,只是为了在没有任何测试的情况下运行简单构建。
我希望我的测试位于src/test/java
,但我想告诉maven不要执行它们。我一直在互联网上寻找类似的东西,但我找不到答案。
有办法做到这一点吗?
答案 0 :(得分:38)
答案 1 :(得分:10)
您也可以选择使用
mvn install -Dmaven.test.skip
来自Maven 网站:
如果绝对必须,您还可以使用maven.test.skip属性跳过编译测试。 maven.test.skip受到Surefire,Failsafe和Compiler Plugin的尊重。
按照说你甚至不会编译测试源。
答案 2 :(得分:4)
来自http://maven.apache.org/plugins/maven-surefire-plugin/examples/skipping-test.html:
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.2</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
</build>
[...]
</project>
答案 3 :(得分:4)
我最喜欢的测试运行时管理方法是创建一个名为skip-tests
的Maven变量,并将其默认为true
。然后您可以像这样使用该变量:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.2</version>
<configuration>
<skipTests>${skip-tests}</skipTests>
</configuration>
</plugin>
这样,您可以在构建时传递变量-Dskip-tests=false
,当您不希望它们运行时。当您进行集成和单元测试时,这非常有用,并且只想使用一个变量来运行或禁用这两组测试。
答案 4 :(得分:3)
使用此
mvn clean install -DskipTests
答案 5 :(得分:0)
我们使用Surefire进行单元测试,使用Failsafe进行集成测试。
要跳过所有测试:
mvn clean package -DskipTests
要跳过Failsafe测试:
mvn clean package -DskipIT
要仅跳过Surefire,您需要在编译测试类之后显式调用Failsafe插件的集成测试目标:
mvn clean test-compile failsafe:integration-test
答案 6 :(得分:-1)
我认为最简单的是:mvn clean package -Dmaven.skip.tests=true
我认为这种方法可以使用,因为它不会让你改变你的pom,因此不必对项目进行更改。