【发布时间】:2013-09-11 06:34:43
【问题描述】:
我在 pom 中有插件 maven-surefire-plugin,skipTests 为 true。 但是,有时我想从命令行运行测试,我想从命令行覆盖这个插件并保持 pom 文件不变。
我试过了
mvn install -DskipTests=false 但它仍然跳过测试...
知道如何解决我的问题吗...?
谢谢
【问题讨论】:
标签: java unit-testing maven plugins
我在 pom 中有插件 maven-surefire-plugin,skipTests 为 true。 但是,有时我想从命令行运行测试,我想从命令行覆盖这个插件并保持 pom 文件不变。
我试过了
mvn install -DskipTests=false 但它仍然跳过测试...
知道如何解决我的问题吗...?
谢谢
【问题讨论】:
标签: java unit-testing maven plugins
Skipping by default在插件文档中有专门讨论:
如果您想默认跳过测试但希望能够重新启用 从命令行进行测试,您需要通过属性部分 在 pom 中
换句话说,使用一个属性作为默认值:
<configuration>
<skipTests>${skipTests}</skipTests>
</configuration>
定义一个属性:
<properties>
<skipTests>true</skipTests>
</properties>
可以从命令行覆盖属性:
mvn install -DskipTests=false
注意上面命令行中的skipTests指的是属性,而不是同名的插件参数。
【讨论】:
使用配置文件可以解决问题。它需要您更改 pom 文件,尽管它会为您提供所需的行为。
在项目元素中设置属性
<properties>
<runtests>false</runtests>
</properties>
现在创建个人资料
<profile>
<id>run-tests</id>
<properties>
<runtests>true</runtests>
</properties>
</profile>
在surefire插件配置中
<skipTests>${runtests}</skipTests>
现在运行 mvn install -P run-tests 此命令将激活配置文件,从而将 runtests 属性设置为 true
【讨论】: