【问题标题】:Set xdebug.mode to coverage in Azure DevOps pipeline将 xdebug.mode 设置为 Azure DevOps 管道中的覆盖范围
【发布时间】: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 developxdebug.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


【解决方案1】:

这就是我让它运行的方式。确保您的 php ini 文件具有正确的路径。您可能想暂时添加该脚本任务以进行验证:

- script: |
    php --ini
  displayName: verify php ini file location
steps:
  - 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)
      php -version
    displayName: 'Use PHP version $(phpVersion)'
    
  - script: |
      sudo bash -c "echo \"xdebug.mode=coverage\" > /etc/php/7.2/cli/php.ini"
    displayName: 'Set XDEBUG mode'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-14
    • 2021-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多