【发布时间】:2011-06-13 17:02:54
【问题描述】:
在 Maven 中有没有办法在不运行测试的情况下编译测试?我想使用 IDE 来运行特定的测试,而不是全部。
【问题讨论】:
-
您可能应该编辑问题或更改接受的答案。
标签: maven
在 Maven 中有没有办法在不运行测试的情况下编译测试?我想使用 IDE 来运行特定的测试,而不是全部。
【问题讨论】:
标签: maven
test-compile 生命周期阶段怎么样?它不需要任何测试跳过,因为它发生在test 阶段之前。即,
$ mvn test-compile
完成了。
【讨论】:
test-compile 比 -DskipTests 有什么优势? - 根据文档-DskipTests 编译测试类,但不 执行它们(或跳过测试类执行) - 所以根据It doesn't require any test skipping - 我应该假设这很昂贵吗?
-DskipTests 不是 Maven 生命周期目标;这只是一个设置选项。您可以使用-DskipTests 实现很多目标。 OP询问如何在不运行它们的情况下编译它们,所以这满足了。我看不出有任何理由认为跳过测试会很昂贵,但运行test 目标并使用-DskipTests 似乎毫无用处。
只编译测试和代码而不运行它们,只需:
mvn test-compile
【讨论】:
当执行一个包含测试阶段的目标(比如包)时,你可以做两件事:
mvn -DskipTests=true package。这将编译所有
测试但不运行它们。mvn -Dmaven.test.skip=true package。这不会编译或运行测试分支。【讨论】:
【讨论】:
或者,您可以使用maven.test.skip.exec 选项。
mvn -Dmaven.test.skip.exec=true
Maven 将编译测试而不运行它们。 我经常在我的所有项目中使用这个选项。
【讨论】:
mvn surefire:test 似乎可以最大限度地减少正在运行的东西的重复。
如果你真的想只编译测试(跳过所有其他阶段,如compile),这样就可以了
mvn org.apache.maven.plugins:maven-compiler-plugin:3.1:testCompile
【讨论】:
如果你的settings.xml文件也可以使用
<maven.test.skip>true</maven.test.skip>
【讨论】: