对于https://www.gitlab.com托管的项目,我想在CI设置中设置代码覆盖率,以便它可以显示在作业列表中
我的配置如下:
.gitlab-ci.yml
image: php:7.1.1
cache:
paths:
- vendor/
before_script:
# Install git, the php image doesn't have installed
- 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
# Run our tests
test:
only:
- master
- develop
script:
- vendor/bin/phpunit --configuration phpunit.xml --coverage-text --colors=never
作业成功,但显示错误消息
错误:没有可用的代码覆盖率驱动程序
我更新了setting for Test coverage parsing并将正则表达式设置为
^\s*Lines:\s*\d+.\d+\%
PHP / PHPUnit的示例。
当我运行命令
时vendor/bin/phpunit --coverage-text --colors=never
在本地,我得到以下输出:
Code Coverage Report:
2017-06-21 14:52:55
Summary:
Classes: 100.00% (4/4)
Methods: 100.00% (14/14)
Lines: 100.00% (43/43)
\Rodacker\CartExample::Article
Methods: 100.00% ( 6/ 6) Lines: 100.00% ( 11/ 11)
\Rodacker\CartExample::ArticleLoader
Methods: 100.00% ( 2/ 2) Lines: 100.00% ( 21/ 21)
\Rodacker\CartExample::ArticleRepository
Methods: 100.00% ( 3/ 3) Lines: 100.00% ( 6/ 6)
\Rodacker\CartExample::Image
Methods: 100.00% ( 3/ 3) Lines: 100.00% ( 5/ 5)
答案 0 :(得分:4)
问题是Docker镜像中缺少Xdebug安装。我无法使用apt-get
安装正确的版本,因此我必须在pecl install xdebug
部分添加before_script
来电:
image: php:7.1.1
cache:
paths:
- vendor/
before_script:
# Install git, the php image doesn't have installed
- apt-get update -yqq
- apt-get install git -yqq
# Install Xdebug
- pecl install xdebug
- docker-php-ext-enable xdebug
# Install composer
- curl -sS https://getcomposer.org/installer | php
# Install all project dependencies
- php composer.phar install
# Run our tests
test:
only:
- master
script:
- vendor/bin/phpunit --configuration phpunit.xml --coverage-text --colors=never
答案 1 :(得分:1)
对于正在搜索 PHPUnit 在 CI 中运行时为什么不输出覆盖率报告的人,需要进行一些更改。
就我而言,它是 PHP 7.3 CLI 版本,运行 vendor/bin/phpunit --configuration phpunit.xml.dist --coverage-text --colors=never
时缺少 phpunit 9.4.3 覆盖率报告,在日志文件中输出 Warning: xdebug.mode=coverage has to be set in php.ini
。
通过将 xdebug 属性为 xdebug.mode=coverage
的 xdebug.ini 文件添加到 PHP conf.d 文件夹解决了这个问题。要查找 php.ini 文件所在的位置,请运行 php -i |grep php\.ini