2012-08-06 28 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