纽曼报告生成在本地工作,但不是来自CI

时间:2019-11-19 16:23:04

标签: docker gitlab-ci gitlab-ci-runner newman

我有一个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生成测试报告?

1 个答案:

答案 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