在PHPunit的命令行上设置xdebug.coverage\u enable=On

在PHPunit的命令行上设置xdebug.coverage\u enable=On,phpunit,Phpunit,我不想为所有脚本启用xdebug代码覆盖率,但我确实希望能够为每天生成代码覆盖率的jenkins构建启用它 我尝试了以下方法 phpunit -d xdebug.coverage_enable=1 -c phpunit-coverage.xml.dist 然而,我总是得到以下错误 Configuration read from phpunit-coverage.xml.dist Fatal error: Uncaught exception 'PHP_CodeCoverage_Except

我不想为所有脚本启用xdebug代码覆盖率,但我确实希望能够为每天生成代码覆盖率的jenkins构建启用它

我尝试了以下方法

phpunit -d xdebug.coverage_enable=1 -c phpunit-coverage.xml.dist
然而,我总是得到以下错误

Configuration read from phpunit-coverage.xml.dist


Fatal error: Uncaught exception 'PHP_CodeCoverage_Exception' with message 'You need to set xdebug.coverage_enable=On in your php.ini.' in /usr/local/lib/php/PHP/CodeCoverage/Driver/Xdebug.php on line 72

PHP_CodeCoverage_Exception: You need to set xdebug.coverage_enable=On in your php.ini. in /usr/local/lib/php/PHP/CodeCoverage/Driver/Xdebug.php on line 72

Call Stack:
    0.0002     627488   1. {main}() /usr/local/bin/phpunit:0
    0.0050    1095880   2. PHPUnit_TextUI_Command::main() /usr/local/bin/phpunit:46
    0.0050    1096608   3. PHPUnit_TextUI_Command->run() /usr/local/lib/php/PHPUnit/TextUI/Command.php:130
    0.6419   39830848   4. PHPUnit_TextUI_TestRunner->doRun() /usr/local/lib/php/PHPUnit/TextUI/Command.php:192
    0.9760   40345400   5. PHP_CodeCoverage->__construct() /usr/local/lib/php/PHPUnit/TextUI/TestRunner.php:258
    0.9764   40358504   6. PHP_CodeCoverage_Driver_Xdebug->__construct() /usr/local/lib/php/PHP/CodeCoverage.php:119

关于如何让它工作,而不必每次都更改php.ini,有什么想法吗?

最后我发现你不能做我最初想要的事情

相反,答案是添加第二个php.ini文件,该文件启用了xdebug和覆盖率。然后 在我的build.xml中,我使用以下命令运行它

php -c /usr/local/lib/php-coverage.ini /usr/bin/phpunit -c app/

使用PHP7.4我必须使用
-d xdebug.mode=coverage


因为我使用的是
php-n
我的完整行是
-d zend_extension=xdebug.so-d xdebug.mode=coverage

当您想要测试运行的代码覆盖率时,需要启用它。如果您不想要它,就不能启用它。看起来您在希望它用于测试运行时禁用了它。您不能使用引导功能启用INI设置吗?我没有尝试,因为我的引导文件是由Symfony2生成的。我想您现在可以了。phpStorm的命令行包括-dxdebug.coverage\u enable=1