首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >代码覆盖率在GitLab中总是未知的。

代码覆盖率在GitLab中总是未知的。
EN

Stack Overflow用户
提问于 2018-08-29 14:09:16
回答 1查看 2.4K关注 0票数 2

我正在尝试理解GitLab管道,经过几次尝试,我成功地自动化了我的单元测试。现在,我试图在我的项目和/或自述文件中添加代码覆盖面板,但它似乎总是显示unknown

文件:

代码语言:javascript
复制
+ application
+ system
- unit-tests
  - tests
      UtilTest.php
    autoload.php
    phpunit
  .gitignore
  .gitlab-ci.yml
  .htaccess
  index.php
  readme.md

.gitlab-ci.yml:

代码语言:javascript
复制
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部分,我设置了以下内容:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-29 17:57:26

因此,我能够通过使用PHP7.2作为Docker映像并在xdebug调用上安装before_script来修复这个问题。

.gitlab-ci.yml:

代码语言:javascript
复制
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部分下使用的。

现在,代码覆盖率正确地显示了我的期望值。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52079471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档