【问题标题】:Skip tests in Jenkins在 Jenkins 中跳过测试
【发布时间】:2014-04-26 04:03:07
【问题描述】:

我在 Jenkins 上为一个 Maven 项目建立了一个构建,我想在不运行任何测试的情况下构建它。我尝试在目标字段中输入“clean install -DskipTests”,如下所示:

但它不起作用。我做错了什么?

注意:我想跳过测试而不接触 pom。我有一个单独的版本可以运行测试。

【问题讨论】:

  • 你指定的 maven 目标很好......只是不要指定 test 目标,你应该是金色的。
  • @sircapsalot 我很困惑......我如何在上面的示例中指定 test 目标?或者你是说我在其他地方指定它?
  • 我是说,只要你设置test 目标,它就不应该运行测试。如果您只指定clean install 它正在运行测试?如果是这样,你能发布 pom 吗?
  • @sircapsalot:不,如果您运行 install,它还会在安装之前运行所有生命周期 - 包括测试。
  • 我解决了。我实际上需要输入clean install -DskipTests=true。我省略了=true

标签: maven jenkins


【解决方案1】:

问题是我省略了=true。通过输入以下内容,我能够在不运行测试的情况下进行构建:

clean install -DskipTests=true

【讨论】:

  • 你能提供你的 maven-surefire-plugin 和 jenkins 的版本吗?对于我最新的 LTS 版本和 surefire 2.17,“-DskipTests”工作得很好。找出发生这种情况的原因会很有趣。
【解决方案2】:

只是为了扩展答案,maven 有两个跳过测试的选项:

-DskipTests=true — 上面提到的那个。有了这个参数,maven 完全忽略了测试。

-Dmaven.test.skip=true — 使用此选项,maven 编译测试但不启动它们。

因此,您可能希望使用第二个选项来代替快速代码编译验证。例如:如果您开发了一些库或模块将被其他人使用,您必须确保您不会与客户签订合同。测试编译可以帮助您解决这个问题。

根据您的需要使用这些参数中的任何一个。

【讨论】:

  • 感谢@iMysak,这实际上是我以前不知道的非常有用的信息。 :)
【解决方案3】:

使用“目标和选项”的值为“全新安装 -DskipTests=true”。

它就像一个魅力。我使用此选项节省了数小时的时间。 :-)

【讨论】:

    【解决方案4】:

    我在“调用顶级 Maven 目标”->“JVM 选项”中使用选项“-DskipTests=true”,它工作正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-15
      • 1970-01-01
      • 2014-09-03
      • 2021-04-30
      • 1970-01-01
      相关资源
      最近更新 更多