繁体   English   中英

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

[英]Cannot overwrite pom maven-surefire-plugin from command line

我在pom中将插件maven-surefire-plugin与skipTests设置为true。 但是,有时我想从命令行运行测试,并且想从命令行覆盖此插件并使pom文件保持不变。

我试过了

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

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

默认情况下,跳过会在插件文档中专门讨论:

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

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

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

定义一个属性:

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

可以从命令行覆盖属性:

    mvn install -DskipTests=false

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

使用配置文件可以解决问题。 它要求您更改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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM