为什么gitlab CI找不到我的junit报告工件?

为什么gitlab CI找不到我的junit报告工件?,junit,continuous-integration,gitlab,cypress,Junit,Continuous Integration,Gitlab,Cypress,我正在尝试上传Gitlab CI上的J-unit报告(这些是来自我的Cypress自动化框架的测试结果)。我正在使用Junit合并。由于Cypress的体系结构(每个测试都是独立的),因此需要额外的“合并”才能将报告合并到一个文件中。在当地,一切正常: Junit使用哈希代码生成每个测试的单个报告 生成所有报告后,我运行一个脚本(如下所示),将所有报告混合到一个.xml文件中,并将其输出到“results”包下面 尝试在本地调试,但在本地一切正常。我可以想到的可能性:要么合并脚本处理不当,要

我正在尝试上传Gitlab CI上的J-unit报告(这些是来自我的Cypress自动化框架的测试结果)。我正在使用Junit合并。由于Cypress的体系结构(每个测试都是独立的),因此需要额外的“合并”才能将报告合并到一个文件中。在当地,一切正常:

  • Junit使用哈希代码生成每个测试的单个报告
  • 生成所有报告后,我运行一个脚本(如下所示),将所有报告混合到一个.xml文件中,并将其输出到“results”包下面
尝试在本地调试,但在本地一切正常。我可以想到的可能性:要么合并脚本处理不当,要么Gitlab不接受.xml文件的相对路径

{
  "baseUrl": "https://www-acc.anwb.nl/",

  "reporter": "mocha-junit-reporter",

  "reporterOptions": {

    "mochaFile": "results/resultsreport.[hash].xml",

    "testsuiteTitle": "true"
  }
}
  • 这是Cypress.json文件,我在其中配置了Junit reporter,并让它在结果包中输出单个测试文件
赛普拉斯-e2e:

image: cypress/base:10

stage: test

script:

- npm run cy:run:staging

- npx junit-merge -d results -o results/results.xml

artifacts:

 paths:

 - results/results.xml

 reports:

  junit: results/results.xml

 expire_in: 1 week
  • 这是yml文件的一部分。npx junit merge命令确保结果包中的所有.xml文件都合并到results.xml中
同样,在本地,一切都按预期进行。我从gitlab Ci得到的错误是:

Uploading artifacts...
WARNING: results/results.xml: no matching files    
ERROR: No files to upload                          
ERROR: Job failed: exit code 1

这意味着下一次配置将解决此问题:

artifacts:

 reports:

  junit: <testing-repo>/results/results.xml

 expire_in: 1 week
工件:
报告:
junit:/results/results.xml
过期时间:1周
artifacts:

 reports:

  junit: <testing-repo>/results/results.xml

 expire_in: 1 week