在 Gitlab CI 上更改 Xdebug 模式 PHP Docker
Posted
技术标签:
【中文标题】在 Gitlab CI 上更改 Xdebug 模式 PHP Docker【英文标题】:Change Xdebug Mode PHP Docker on Gitlab CI 【发布时间】:2021-04-27 16:36:11 【问题描述】:我想使用 GitLab CI 运行 phpUnit 代码覆盖率,但是当我运行命令 vendor/bin/phpunit --coverage-text --colors=never
时只显示代码测试结果而不生成代码覆盖率。
当我使用带有 Xdebug 的 XAMPP 在本地测试它时,启用使用 xdebug.mode=coverage
生成的代码覆盖率。如何在 docker setup 脚本上更改 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
【问题讨论】:
【参考方案1】:在搜索了一些文章后,我终于可以这样做了。
这是我的例子.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
【讨论】:
快速提问,有道理......但只是为了确定。正确的方法是覆盖>
整个xdebug.ini
文件而不是追加一个新行>>
对吗?以上是关于在 Gitlab CI 上更改 Xdebug 模式 PHP Docker的主要内容,如果未能解决你的问题,请参考以下文章
为合并请求触发的管道运行应用 GitLab CI/CD 管道更改