Maven -DskipTests 被忽略

2022-09-01 00:55:37

我正在使用以下 SureFire 配置构建一个 Maven 项目:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>${version.maven-surefire-plugin}</version>
    <configuration>
        <includes>
            <include>**/*Test.java</include>
        </includes>
    </configuration>
</plugin>

问题是,当我用 构建它时,测试仍在执行中。可能是什么问题?mvn clean install -DskipTests=true

我尝试了两者(来自Maven网站)和,当我选中“跳过测试”复选框时,IntelliJ Idea添加了这两个。-DskipTests-DskipTests=true

我不使用任何Maven。settings.xml

  • 版本: 2.2.1
  • Surefire 插件: 2.3

编辑如果我注释掉了 SureFire 插件配置,则该参数的行为符合我的预期。上述配置可能存在什么问题?


答案 1

Maven 知道两种类型的参数用于跳过测试:

-Dmaven.test.skip=true 

-DskipTests=true 

surefire插件文档仅提及第一个,您尚未尝试过。


答案 2

你所做的应该有效。如何进一步调试:

  1. 运行以查看 Maven 将执行的整个 POM。搜索它(不区分大小写)以查看是否有奇怪的东西。mvn help:effective-pomtest

  2. 运行以获取调试输出。这将打印用于配置 .确保将输出重定向到文件!mvn test -Xmaven-surefire-plugin

    在日志中,您将看到

    [DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-surefire-plugin:2.15:test' with basic configurator -->
    

    然后,在下面的一些行:

    [DEBUG]   (s) runOrder = filesystem
    [DEBUG]   (s) skip = false
    [DEBUG]   (s) skipTests = false
    

    这些值意味着不会跳过测试。

  3. 您是否正在使用最新版本的插件?检查这里。您的版本可能不支持此选项。


推荐