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

lor*_*dos 6 php phpunit code-coverage gitlab gitlab-ci

对于在https://www.gitlab.com上托管的项目,我想在CI设置中设置代码覆盖率,因此它可以显示在作业列表中

gitlab.com项目中的工作列表

我的配置如下所示:

.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
Run Code Online (Sandbox Code Playgroud)

作业成功,但显示错误消息

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

没有代码覆盖找到工作输出

我已更新测试覆盖率解析的设置并将正则表达式设置为

^\s*Lines:\s*\d+.\d+\%
Run Code Online (Sandbox Code Playgroud)

PHP/PHPUnit的示例.

当我运行命令

vendor/bin/phpunit --coverage-text --colors=never
Run Code Online (Sandbox Code Playgroud)

在本地,我得到以下输出:

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)
Run Code Online (Sandbox Code Playgroud)

lor*_*dos 7

问题是在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
Run Code Online (Sandbox Code Playgroud)

  • 是的,它可以完成工作,但是覆盖范围报告怎么样?测试完成后,Gitlab ci/cd 如何公开覆盖率报告? (2认同)
  • @RiteshAryal - 在项目的 -- 设置 > CI / CD > 常规管道 > 测试覆盖率解析中...有示例。我想这就是你所追求的。 (2认同)