无法从命令行覆盖pom maven-surefire-plugin

时间:2013-09-11 06:34:43

标签: java unit-testing maven plugins

我在插件maven-surefire-plugin中使用了skipTests,这是真的。 但是,有时我想从命令行运行测试,我想从命令行覆盖此插件,并保持pom文件不变。

我试过了

mvn install -DskipTests=false
,但它仍然跳过了测试......

知道如何解决我的问题......? 感谢

2 个答案:

答案 0 :(得分:5)

Skipping by default在插件文档中有具体讨论:

  

如果您希望默认跳过测试但希望能够重新启用   从命令行进行测试,您需要通过属性部分进行测试   在pom

换句话说,使用属性作为默认值:

    <configuration>
      <skipTests>${skipTests}</skipTests>
    </configuration>

定义属性:

    <properties>
      <skipTests>true</skipTests>
    </properties>

可以从命令行覆盖属性:

    mvn install -DskipTests=false

请注意,上面命令行中的skipTests引用属性,而不是引用具有相同名称的plugin参数。

答案 1 :(得分:0)

使用个人资料可以解决问题。它需要您更改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