2012-08-06 26 views
3

我不想打开所有脚本的xdebug代码覆盖范围,但我确实希望能够打开它,以生成代码覆盖率的日常jenkins构建。设置xdebug.coverage_enable =在PHPunit的命令行上开启

我尝试以下

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 ?

+0

当您需要测试运行的代码覆盖率时,您需要启用它。如果你不想要它,你不能启用它。它看起来像你想在测试运行时禁用它。 – hakre 2012-08-08 12:33:34

+0

你不能使用Bootstrap功能来启用INI设置吗? – 2013-07-30 16:18:44

+0

我没有尝试,因为我的引导文件是由Symfony2生成的。 – 2013-07-31 18:11:15

回答

1

最后我发现你不能做我原本想要的东西。

相反,答案是添加第二个php.ini文件,它具有xdebug和覆盖范围启用。然后在我的build.xml中使用 我使用以下来运行它。

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

我想你现在可以。 phpStorm的命令行包括-dxdebug.coverage_enable = 1 – Steve 2016-09-20 02:28:01