Maven-如何在不运行测试的情况下编译测试?


128

Maven中有没有一种方法可以在不运行测试的情况下进行编译?我想使用IDE来运行特定的测试,而不是全部。


8
您可能应该编辑问题或更改接受的答案。
Chiranjib

Answers:


29

你可以尝试使用参数 -DskipTests

参考文献:


在netbeans中,这就是我正在做的。我看到以下mvn -Dmaven.test.skip = true -Dnetbeans.execution = true全新安装,然后我看到以下内容
user373201 2011年

[compiler:testCompile]不编译测试源[surefire:test]测试被跳过。使用netbeans的
Atleast

1
没关系,即使日志说了这一点,它似乎仍然可以编译测试文件。
user373201 2011年

34
这导致完全跳过测试:执行和编译,请参见下面的正确答案:test-compile。我在Eclipse中将它与mvn clean compile test-compile一起使用
Yashima 2012年

3
@Yashima你说得对这个aswer也不是那么聪明......请接受答案波纹管,所以可以删除这一个
lweller

334

test-compile生命周期阶段如何?它不需要任何测试跳过,因为它发生在test阶段之前。即

$ mvn test-compile

并做了。

构建生命周期简介进一步说明。


7
正是我需要的,谢谢。我不知道原始的询问者;但我当时想编译测试,然后使用单独的测试运行器运行它们。
Mike Miller


26

在执行将包括测试阶段(例如包装)的目标时,您可以做两件事:

  • 使用命令mvn -DskipTests=true package。这将编译所有测试,但不会运行它们。
  • 或者mvn -Dmaven.test.skip=true package。这不会编译或运行测试分支。

3

或者,您可以使用maven.test.skip.exec选项。

mvn -Dmaven.test.skip.exec=true

Maven将编译测试而不运行它们。我会在所有项目中定期使用此选项。



0

如果您使用settings.xml文件,也可以使用

<maven.test.skip>true</maven.test.skip>

5
你绝对不应该那样做。如果需要,请在命令行上进行设置,但不要永久设置。
肖恩·帕特里克·弗洛伊德

13
从来没有说过您应该或不应该这样做。仅提供有关选项的知识。
menapole 2011年

4
这也导致Maven也不编译测试。
Mike Miller

3
@Sean Patrick Floyd:为什么不呢?这不是永久的,而是要在pom.xml中进行设置。
巴拉兹内梅特
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.