【问题标题】:How to access test artifacts from Jenkins if test fails如果测试失败,如何从 Jenkins 访问测试工件
【发布时间】:2012-03-28 16:11:06
【问题描述】:

我有一个 Maven 项目,它在集成测试 Maven 周期中执行许多耗时的测试。我使用 Jenkins 作为 CI 服务器。

在集成测试期间,目标文件夹中会生成许多文件。例如,生成“实际”BMP 文件并将其与“预期”BMP 文件进行比较。如果测试失败,我需要查看目标文件夹中的文件以确定如何处理错误。也许实际的 BMP 看起来不错,因此应该将其提升为新的预期 BMP。另一方面,它可能会揭示需要修复代码的问题。

问题是我没有任何方法可以访问这些文件,除了 ssh 进入 CI 服务器并手动将文件 scp 到我自己的机器上以进行更仔细的检查。如果我可以从 Jenkins Web 界面访问这些文件,那将非常有帮助。

我尝试使用build-helper-maven-plugin 将相关文件附加为 Maven 工件,但问题是如果任何测试失败,Maven 中没有合适的阶段在集成测试之后执行。

我能做什么?我可以为此使用“复制工件”插件吗?

【问题讨论】:

  • 您是否尝试过通过 Jenkins UI 访问工作区?
  • 正如@khmarbaise 所说,只要您在构建作业结束时不删除工作区,您就应该能够通过 http:///job 访问您的文件//ws/
  • 是的。但问题是:您需要这些工件只是为了控制目的还是想将它们用于其他用途?
  • 我可以从 jenkins UI 访问相关文件。没想到这么简单.. :-)
  • 后续问题:是否可以在Jenkins的左侧菜单或其他地方添加静态链接,这样您就不必导航到工作区,找到正确的项目和模块,找到目标文件夹...等?

标签: maven jenkins


【解决方案1】:

1) 目标文件夹中的文件可以通过/ws/projectname/target/filename等链接访问...

2) 无需每次都输入 url,SideBar 插件可用于将文件链接添加到 Jenkins 左侧菜单,使其易于访问。

【讨论】:

    【解决方案2】:

    您需要在构建步骤中将文件复制到您的工作区并从那里存档 - Jenkins 允许您仅指定与工作区相关的工件。

    我通常在工作区中创建一个以 BUILD_ID 为键的目录,以便在我不清理工作区并从那里存档(在存档步骤中指定 ${BUILD_ID}/**/*)的情况下,来自不同构建的工件不会混淆。

    如果您的构建在它可以运行复制步骤之前失败并且由于它不执行复制,请查看this question

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-21
      • 2011-09-16
      • 2015-11-19
      • 1970-01-01
      • 2018-03-04
      • 1970-01-01
      • 2011-10-04
      • 1970-01-01
      相关资源
      最近更新 更多