在 Gitlab CI 上更改 Xdebug 模式 PHP Docker

Change Xdebug Mode PHP Docker on Gitlab CI

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

当我使用 XAMPP 和 Xdebug 在本地测试它时,启用使用 xdebug.mode=coverage 生成的代码覆盖率。如何在 docker 安装脚本上更改 php.ini 上的 xdebug.mode

我也通过 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

在搜索了一些文章后,我终于可以这样做了。 这是我的例子 .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