我正在尝试理解GitLab管道,经过几次尝试,我成功地自动化了我的单元测试。现在,我试图在我的项目和/或自述文件中添加代码覆盖面板,但它似乎总是显示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部分,我设置了以下内容:

发布于 2018-08-29 17:57:26
因此,我能够通过使用PHP7.2作为Docker映像并在xdebug调用上安装before_script来修复这个问题。
.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+\%/'我不得不使用PHP7.2,因为当我尝试运行pecl install xdebug时,它说它需要PHP7。理想情况下,我希望使用PHP5.6,因为这正是我们当前服务器所拥有的,所以测试是在类似的版本上进行的,但我将保留它,就像现在一样。
为了输出数字,我不得不在--coverage-text --colors=never调用中添加script。然后,在coverage调用中,我将其更改为'/^\s*Lines:\s*\d+.\d+\%/',这也是在项目设置的Test coverage parsing部分下使用的。
现在,代码覆盖率正确地显示了我的期望值。
https://stackoverflow.com/questions/52079471
复制相似问题