首页 > 解决方案 > 在 Gitlab CI 上更改 Xdebug 模式 PHP Docker

问题描述

我想使用 GitLab CI 运行 PHPUnit 代码覆盖率,但是当我运行命令时vendor/bin/phpunit --coverage-text --colors=never只显示代码测试结果而不生成代码覆盖率。

当我在本地使用带有 Xdebug 的 XAMPP 对其进行测试时,启用使用生成的代码覆盖率xdebug.mode=coverage。如何更改xdebug.modedocker setup 脚本上的 on php.ini?

我也通过 PHPUnit XML 配置覆盖它,这样也行不通。

<ini name="xdebug.mode" value="coverage" />

这是我的.gitlab-ci.yml

image: php:7.4.14

cache:
  key: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
  paths:
    - vendor

before_script:
  # Install git
  - apt-get update -yqq
  - apt-get install git -yqq

  # Install packages
  - apt-get install libcurl4-openssl-dev

  # Install required php extension
  - docker-php-ext-install curl

  # Install Xdebug
  - pecl install xdebug
  - docker-php-ext-enable xdebug

  # Install composer
  - curl -sS https://getcomposer.org/installer | php

  # Install dependencies
  - php composer.phar update --prefer-stable --prefer-dist --no-interaction --no-progress

run-test:
  script:
    - vendor/bin/phpunit --coverage-text --colors=never

标签: dockergitlabphpunitxdebug

解决方案


在搜索了一些文章后,我终于可以这样做了。这是我的例子.gitlab-ci.yml

图片:php:7.4.14

cache:
  key: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
  paths:
    - vendor

before_script:
  # Install git
  - apt-get update -yqq
  - apt-get install git -yqq

  # Install packages
  - apt-get install libcurl4-openssl-dev

  # Install required php extension
  - docker-php-ext-install curl

  # Install Xdebug
  - pecl install xdebug
  - docker-php-ext-enable xdebug

  # Install composer
  - curl -sS https://getcomposer.org/installer | php

  # Install dependencies
  - php composer.phar update --prefer-stable --prefer-dist --no-interaction --no-progress

  # Here to change xdebug mode
  - echo xdebug.mode=coverage > /usr/local/etc/php/conf.d/xdebug.ini 

run-test:
  script:
    - vendor/bin/phpunit --coverage-text --colors=never

推荐阅读