3

I have in pom the plugin maven-surefire-plugin with skipTests on true. However, sometimes I want to run the tests from the command line and I want to overwrite this plugin from command line and to leave the pom file unchanged.

I tried

mvn install -DskipTests=false
but it still skips the tests...

Any idea how I can solve my problem...?
Thanks

4

2 回答 2

6

插件文档中专门讨论了默认跳过:

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

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

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

定义一个属性:

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

可以从命令行覆盖属性:

    mvn install -DskipTests=false

请注意,skipTests上面命令行中的 是指属性,而不是同名的插件参数。

于 2013-09-11T06:57:12.947 回答
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

于 2013-09-11T06:50:46.153 回答