【发布时间】:2021-07-21 05:01:08
【问题描述】:
我需要将 xdebug.mode 设置为 coverage 才能在 Azure Pipeline 中运行单元测试。
我已尝试使用此任务手动设置它:
- script: |
sudo update-alternatives --set php /usr/bin/php$(phpVersion)
sudo update-alternatives --set phar /usr/bin/phar$(phpVersion)
sudo update-alternatives --set phpdbg /usr/bin/phpdbg$(phpVersion)
sudo update-alternatives --set php-cgi /usr/bin/php-cgi$(phpVersion)
sudo update-alternatives --set phar.phar /usr/bin/phar.phar$(phpVersion)
sudo apt-get install php$(phpVersion)-mysql -y
sudo apt-get install jq -y
php -version
php -i
sudo sed -i 's/develop/coverage/g' /etc/php/7.2/cli/php.ini
displayName: 'Specify PHP Version'
但xdebug.mode仍在develop中,并且在运行单元测试时管道失败:
需要在 php.ini 中通过将 'xdebug.mode' 设置为 'coverage' 来启用代码覆盖率
有人可以帮我吗?
【问题讨论】:
-
AFAIK
develop是xdebug.mode的默认值:xdebug.org/docs/all_settings#mode。它可能根本不存在于您的 php.ini 中……甚至包含在单独的 xdebug.ini 文件中(某些 Linux 设置/发行版中的情况——不知道 Azure)。 P.S. 如果您无法通过 .ini 文件执行此操作,可以尝试通过XDEBUG_MODE环境变量覆盖它。 -
可以参考this blog。
-
@LazyOne 不适合我,我将 XDEBUG_MODE 导出为环境变量但不适合我
-
1) 你有没有安装 Xdebug?我的意思是 "but the xdebug.mode still in develop" 行表明你有它..但是你的任务剪断似乎没有任何 Xdebug 在那里...... 2)你的Xdebug版本? 3) 您能否显示以相同方式(CLI 或网页)捕获的
phpinfo()输出的整个 Xdebug 部分? -
对不起兄弟,这是工作!我错过了一些细节
标签: php unit-testing azure-devops xdebug