Maven -DskipTests 被忽略

新手上路,请多包涵

我正在使用以下 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 构建它时,测试仍在执行。可能是什么问题呢?

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

我不使用任何 Maven settings.xml

  • 行家版本:2.2.1
  • Surefire 插件:2.3

编辑 如果我注释掉 SureFire 插件配置,参数的行为与我预期的一样。上面的配置可能有什么问题?

原文由 NeplatnyUdaj 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 927
2 个回答

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

  1. 运行 mvn help:effective-pom 以查看 Maven 将执行的整个 POM。在其中搜索 test (不区分大小写),看看是否有什么奇怪的地方。

  2. 运行 mvn test -X 以获得调试输出。这将打印用于配置 maven-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

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

  1. 您使用的是最新版本的插件吗? 在这里检查。也许您的版本不支持此选项。

原文由 Aaron Digulla 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

 -Dmaven.test.skip=true

或者

-DskipTests=true

surefire-plugin 文档 只提到了第一个,你还没有尝试过。

原文由 Jack 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题