【发布时间】:2019-05-29 05:06:06
【问题描述】:
我有这个基本的.gitlab-ci.yml 文件。
image: php:7.2
before_script:
# install git
- apt-get update -yqq
- apt-get install git -yqq
# Install composer
- curl -sS https://getcomposer.org/installer | php
# Install all project dependencies
- php composer.phar install
tests:
script:
- vendor/bin/phpunit tests
这很好用,它会在单元测试失败或通过时提醒我。
我的问题是 Gitlab CI 究竟是如何知道这一点的?他们是否会解析 PHPUnit 的输出并查看字符串 FAILURES! 是否存在?
【问题讨论】:
-
脚本返回除 0 以外的任何其他退出代码都被视为失败。
-
@SaschaFrinken 您能否简要解释一下与 PHPUnit 相关的退出代码是什么?你的意思是说 PHPUnit 内部返回 0 还是 1? Gitlab CI 是如何读取它的?人类的 PHPUnit 输出只是
Tests: 1, Assertions: 1, Failures: 1或OK (1 test, 1 assertion) -
@SaschaFrinken 我知道这一点,但我的问题是这与 Gitlab CI 有什么关系?它似乎神奇地知道测试是失败还是通过。如果我使用的是自制或私人测试软件,我想知道 Gitlab CI 如何知道我返回的是通过还是失败测试。
-
您的单元测试只是一个脚本,当所有测试通过时,它将返回
0作为退出代码。 CI 检查返回码并将其处理为失败或通过。
标签: php unit-testing continuous-integration gitlab devops