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

时间:2019-06-03 07:43:50

标签: junit continuous-integration gitlab cypress

我正在尝试在Gitlab CI上上传J单元报告(这些是我的赛普拉斯自动化框架的测试结果)。我正在使用Junit-merge。由于赛普拉斯(Cypress)的体系结构(每个测试都是单独进行的),因此报告需要额外的“合并”才能将报告放入一个文件中。本地一切正常:

  • Junit使用哈希码为每个测试生成单个报告
  • 生成所有报告后,我运行一个脚本(如下所示),将所有报告混合到一个.xml文件中,并将其输出到“结果”包下方。

试图在本地调试它,但是在本地一切正常。我可能想到的是:合并脚本处理不正确,或者Gitlab不接受.xml文件的相对路径。

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

“ reporter”:“ mocha-junit-reporter”,

“ reporterOptions”:{

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

"testsuiteTitle": "true"

} }

  • 这是Cypress.json文件,我在其中配置了Junit报告程序,并使其在结果包中输出单个测试文件。

cypress-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中得到的错误是:

正在上传工件... 警告:results / results.xml:没有匹配的文件
错误:没有要上传的文件
错误:作业失败:退出代码1

1 个答案:

答案 0 :(得分:1)

---Select---

LIVE

这意味着下一个配置应解决此问题:

Artifacts can only exist in
directories relative to the build directory and specifying paths which don't
comply to this rule trigger an unintuitive and illogical error message (an
enhancement is discussed at
gitlab-ce#15530
). Artifacts need to be uploaded to the GitLab instance (not only the GitLab
runner) before the next stage job(s) can start, so you need to evaluate
carefully whether your bandwidth allows you to profit from parallelization
with stages and shared artifacts before investing time in changes to the
setup.