【问题标题】:How to make gitlab ci runner get its exit code from docker-compose up some_service如何让 gitlab ci runner 从 docker-compose up some_service 获取其退出代码
【发布时间】:2021-11-14 23:20:09
【问题描述】:

我正在 GitLab 上使用 cypress 运行 e2e 测试。这是我运行赛普拉斯测试的命令:

docker-compose -f devops/e2e/docker-compose.yml up cypress

Cypress 服务只是基于cypress/included:8.4.0 图像。

所以在我的 Gitlab 工作中,当测试成功时,我会得到这样的结果:

cypress      |        Spec                                              Tests  Passing  Failing  Pending  Skipped  
cypress      |   ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
cypress      |   │ ✔  login_spec.js                            00:04        1        1        -        -        - │
cypress      |   ├────────────────────────────────────────────────────────────────────────────────────────────────┤
cypress      |   │ ✔  multi_resolution_image_spec.js           00:41        1        1        -        -        - │
cypress      |   ├────────────────────────────────────────────────────────────────────────────────────────────────┤
cypress      |   │ ✔  plain_image_spec.js                      00:40        1        1        -        -        - │
cypress      |   ├────────────────────────────────────────────────────────────────────────────────────────────────┤
cypress      |   │ ✔  signup_spec.js                           00:10        1        1        -        -        - │
cypress      |   └────────────────────────────────────────────────────────────────────────────────────────────────┘
cypress      |     ✔  All specs passed!                        01:36        4        4    

cypress exited with code 0
.
.
.
Job succeeded

但是当测试失败时,我得到:

cypress      |        Spec                                              Tests  Passing  Failing  Pending  Skipped  
cypress      |   ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
cypress      |   │ ✖  annotate_spec.js                         00:02        1        -        1        -        - │
cypress      |   ├────────────────────────────────────────────────────────────────────────────────────────────────┤
cypress      |   │ ✔  login_spec.js                            00:05        1        1        -        -        - │
cypress      |   ├────────────────────────────────────────────────────────────────────────────────────────────────┤
cypress      |   │ ✔  signup_spec.js                           00:13        1        1        -        -        - │
cypress      |   └────────────────────────────────────────────────────────────────────────────────────────────────┘
cypress      |     ✖  1 of 3 failed (33%)                      00:21        3        2        1    

cypress exited with code 1
.
.
.
Job succeeded

问题是在运行测试失败的情况下,我仍然从 Gitlab 获得 Job succeeded。如何让 Gitlab CI 运行器从 cypress 服务退出代码中获取其退出代码?

【问题讨论】:

    标签: javascript gitlab gitlab-ci cypress e2e-testing


    【解决方案1】:

    您可以尝试使用选项--exit-code-from:

    docker-compose -f devops/e2e/docker-compose.yml up --exit-code-from cypress
    

    【讨论】:

      猜你喜欢
      • 2018-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-17
      • 2022-01-03
      • 2020-02-02
      相关资源
      最近更新 更多