Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在gitlab.com上的PHP项目作业列表中启用代码覆盖率输出_Php_Phpunit_Gitlab_Code Coverage_Gitlab Ci - Fatal编程技术网

如何在gitlab.com上的PHP项目作业列表中启用代码覆盖率输出

如何在gitlab.com上的PHP项目作业列表中启用代码覆盖率输出,php,phpunit,gitlab,code-coverage,gitlab-ci,Php,Phpunit,Gitlab,Code Coverage,Gitlab Ci,对于托管在的项目,我希望在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 -

对于托管在的项目,我希望在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
作业成功,但显示错误消息

错误:没有可用的代码覆盖率驱动程序

我已更新并将正则表达式设置为

^\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)

问题是docker映像中缺少Xdebug安装。我无法使用
apt-get
安装正确的版本,因此我必须在
脚本之前的
部分添加
pecl-install-xdebug
调用:

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

对于正在搜索为什么PHPUnit在CI中运行时不输出覆盖率报告的人,需要进行一些更改

在我的例子中,它是PHP7.3 CLI版本,当运行
vendor/bin/phpunit--configuration phpunit.xml.dist--coverage text--colors=never
时,phpunit 9.4.3覆盖率报告丢失,在日志文件中输出了
警告:xdebug.mode=coverage必须在PHP.ini
中设置


通过将带有xdebug属性的xdebug.ini文件
xdebug.mode=coverage
添加到PHP conf.d文件夹中,解决了这个问题。要查找php.ini文件的位置,请运行
php-i | grep php\.ini

您的跑步者缺少xdebug。是的,我也发现了这一点。通过apt get安装时遇到问题,但它使用pecl工作。是的,它可以完成工作,但覆盖率报告如何。测试完成后,Gitlab ci/cd如何公开覆盖率报告?@RiteshAryal-在项目的--Settings>ci/cd>General pipelines>test coverage解析中。。。有一些例子。我想这就是你想要的。