【问题标题】:Jenkins - HTML Publisher Plugin build fails with report directory doesnot existJenkins - HTML Publisher Plugin 构建失败,报告目录不存在
【发布时间】:2019-08-29 16:06:06
【问题描述】:

我正在使用 HTML 发布者插件,我正在生成 html 报告并将其放入报告文件夹 report/profile.html。我已经指定了我的报告在 HTML 目录中的存档路径。我将路径命名为/apps/cmjenkins/workspace/service_testapps_copy/LISA Project/Mezzo_Automation/Reports。这给了directory does not exist 错误,所以也给出了完整的路径:C:/Users/dtiker/Documents/Feb24/universe1_0_testapps/service_testapps/LISA Project/Mezzo_Automation/Reports

以下是我在运行 jenkins 构建后在控制台输出中看到的错误

12:45:34 [htmlpublisher] Archiving HTML reports...
12:45:34 [htmlpublisher] Archiving at PROJECT level C:/Users/dtiker/Documents/Feb24/universe1_0_testapps/service_testapps/LISA Project/Mezzo_Automation/Reports to /var/lib/jenkins/jobs/API_PROFILE_HTML_Report_POC/htmlreports/HTML_Report
12:45:34 ERROR: Specified HTML directory 'C:/Users/dtiker/Documents/Feb24/universe1_0_testapps/service_testapps/LISA Project/Mezzo_Automation/Reports' does not exist.
12:45:34 Build step 'Publish HTML reports' changed build result to FAILURE
12:45:34 Finished: FAILURE

我确认该目录确实存在。有人可以告诉我我做错了什么吗?

【问题讨论】:

  • 你能试试文件的相对路径吗?
  • 相对路径不起作用。这就是为什么给出绝对路径
  • 您可能不会为每个构建使用相同的工作区目录。
  • 所以知道如何解决这个问题吗?我应该在我的目录路径中给出什么?
  • @user2864458 看看我的回答,它会有所帮助:stackoverflow.com/a/54203222/5770004

标签: jenkins


【解决方案1】:

您的工作(每个 node{})将使用自己的工作区,您应该始终使用相对路径引用当前构建的文件!

publishHTML(reportDir: 'reports', reportFiles: 'profile.html'])

【讨论】:

  • 我知道这是一个迟到的评论,但我被困在这个问题上。你能扩展一下吗?我有同样的问题。
  • 您需要确保在同一 node/agent 中调用发布步骤。
  • 是的,我想通了。我的 mocha 报告没有放在 HTML 发布者正在查找的相同位置。绿角错误。
  • 我也坚持这一点,我什至可以看到该目录中的 json 文件,并且它正在使用该节点的工作区(在此处使用 docker-agents),但文件是根目录: bin 权限。甚至尝试 chown 所有文件和文件夹,但仍然出现找不到文件夹的错误。在这里使用相对路径。
【解决方案2】:

在我的情况下,HTML 发布者的错误配置导致了问题

publishHTML([
  allowMissing: false,
  alwaysLinkToLastBuild: false,
  includes: '**/*.png',     <--------------------- this line
  keepAll: true,
  reportDir: 'reports/',
  reportFiles: 'friday_health_broker_portal_uat_index.html',
  reportName: 'HTML Report',
  reportTitles: 'FH BP'
 ])

一旦我将includes 更改为includes: '**/*',问题就消失了

【讨论】:

    【解决方案3】:

    当我在“filepath”而不是“filepath”中使用文件路径时,它对我来说工作正常

    stage ('publish results') {
          publishHTML([
              allowMissing: false, 
              alwaysLinkToLastBuild: true, 
              keepAll: false, 
              reportDir: "/var/lib/jenkins/workspace/project/target/site/serenity", 
              reportFiles: "index.html", 
              reportName: 'HTML Report', 
              reportTitles: ''
              ])
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-15
      • 1970-01-01
      相关资源
      最近更新 更多