GitLab 中的代码覆盖率始终未知
Code coverage is always unknown in GitLab
我正在尝试了解 GitLab 管道,经过几次尝试,我能够成功地自动化我的单元测试。现在我正在尝试将代码覆盖率徽章添加到我的项目 and/or 自述文件中,但它似乎总是显示 unknown
.
文件:
+ application
+ system
- unit-tests
- tests
UtilTest.php
autoload.php
phpunit
.gitignore
.gitlab-ci.yml
.htaccess
index.php
readme.md
.gitlab-ci.yml:
image: php:5.6
stages:
- test
app:unit-tests:
stage: test
script:
- php ./unit-tests/phpunit --bootstrap ./unit-tests/autoload.php ./unit-tests/tests
coverage: '/Code Coverage: \d+\.\d+/'
在项目的 Test coverage parsing
部分,我进行了以下设置:
所以我能够通过使用 PHP 7.2 作为 Docker 图像并在 before_script
调用上安装 xdebug
来解决这个问题。
.gitlab-ci.yml:
image: php:7.2
stages:
- test
before_script:
- pecl install xdebug
- docker-php-ext-enable xdebug
app:unit-tests:
stage: test
script:
- php ./unit-tests/phpunit --bootstrap ./unit-tests/autoload.php ./unit-tests/tests --coverage-text --colors=never
coverage: '/^\s*Lines:\s*\d+.\d+\%/'
我不得不使用 PHP 7.2 因为当我尝试 运行 pecl install xdebug
它说它需要 PHP 7. 理想情况下我想使用 PHP 5.6,因为这是我们当前服务器的版本,所以测试是在类似的版本上进行的,但我暂时保持原样。
我必须在 script
调用中添加 --coverage-text --colors=never
才能输出数字。然后在 coverage
调用中,我将其更改为 '/^\s*Lines:\s*\d+.\d+\%/'
,我也在项目设置的 Test coverage parsing
部分下使用了它。
现在代码覆盖率正确地显示了我的预期值。
我正在尝试了解 GitLab 管道,经过几次尝试,我能够成功地自动化我的单元测试。现在我正在尝试将代码覆盖率徽章添加到我的项目 and/or 自述文件中,但它似乎总是显示 unknown
.
文件:
+ application
+ system
- unit-tests
- tests
UtilTest.php
autoload.php
phpunit
.gitignore
.gitlab-ci.yml
.htaccess
index.php
readme.md
.gitlab-ci.yml:
image: php:5.6
stages:
- test
app:unit-tests:
stage: test
script:
- php ./unit-tests/phpunit --bootstrap ./unit-tests/autoload.php ./unit-tests/tests
coverage: '/Code Coverage: \d+\.\d+/'
在项目的 Test coverage parsing
部分,我进行了以下设置:
所以我能够通过使用 PHP 7.2 作为 Docker 图像并在 before_script
调用上安装 xdebug
来解决这个问题。
.gitlab-ci.yml:
image: php:7.2
stages:
- test
before_script:
- pecl install xdebug
- docker-php-ext-enable xdebug
app:unit-tests:
stage: test
script:
- php ./unit-tests/phpunit --bootstrap ./unit-tests/autoload.php ./unit-tests/tests --coverage-text --colors=never
coverage: '/^\s*Lines:\s*\d+.\d+\%/'
我不得不使用 PHP 7.2 因为当我尝试 运行 pecl install xdebug
它说它需要 PHP 7. 理想情况下我想使用 PHP 5.6,因为这是我们当前服务器的版本,所以测试是在类似的版本上进行的,但我暂时保持原样。
我必须在 script
调用中添加 --coverage-text --colors=never
才能输出数字。然后在 coverage
调用中,我将其更改为 '/^\s*Lines:\s*\d+.\d+\%/'
,我也在项目设置的 Test coverage parsing
部分下使用了它。
现在代码覆盖率正确地显示了我的预期值。