我有一个GitLab CI作业,它使用自定义环境运行一系列邮递员请求。我正在使用Newman将它们与newman-reporter-htmlextra npm插件一起运行以生成测试报告。
工作如下:
postman-tests:
stage: postman-tests
image:
name: wojciechzurek/newman-ci
before_script:
- cd ci/tests/postman
- npm install -g newman-reporter-htmlextra
script:
- newman run Non-regression_tests.postman_collection.json -e Tests.postman_environment.json \
--reporters htmlextra --reporter-htmlextra-export newman-results.html
- ls -la # Check report generation
artifacts:
when: always
paths:
- newman-results.html
allow_failure: true
当我在Mac(newman 4.5.0)上运行newman时,请求和相关测试正常运行,并生成报告。但是,作业失败,并且不会生成报告:
$ newman run Non-regression_tests.postman_collection.json -e Tests.postman_environment.json --reporters htmlextra --reporter-htmlextra-export newman-results.html --color
Uploading artifacts...
WARNING: newman-results.html: no matching files
ERROR: No files to upload
ERROR: Job failed: exit code 1
似乎该问题可能是由于测试系列本身而不是报告生成所致,因为即使我不生成报告,该工作也会失败。
我尝试了不同的运行方式:带有官方newman映像,SSH和Shell的Docker,这些计算机我已经预先安装了newman(版本4.5.6)和htmlextra记者。全部失败。
有趣的是,当在SSH和外壳运行程序后面的计算机上本地运行时,测试系列和报告生成都成功,但是从GitLab CI启动时它们确实失败。
我忘记/做错了哪些事情导致无法从GitLab CI生成测试报告?
答案 0 :(得分:1)
我用于测试的.yml
看起来很像-这是非常基本的,但是我刚刚再次运行它就可以了:
stages:
- test
newman_tests:
stage: test
image:
name: postman/newman_alpine33
entrypoint: [""]
script:
- newman --version
- npm install -g newman-reporter-htmlextra
- newman run collection.json -e environment.json --reporters cli,htmlextra --reporter-htmlextra-export testReport.html
artifacts:
when: always
paths:
- testReport.html
我确实拥有的一件事是entrypoint: [""]
块中的image
。