2011-10-11 40 views
0

我在Ubuntu 10.04上運行Zend Framework 1.10,剛剛安裝了Xdebug以通過PECL生成代碼覆蓋率。通過PECL安裝Xdebug後運行沒有參數的phpunit會生成關於權限的警告

如果我PHPUnit的運行,像這樣:

$ phpunit --coverage-html ~/coverage 

它工作得很好。 Unittests運行,然後生成代碼覆蓋率輸出。沒有錯誤消息或警告。

但是,如果我做的:

$ phpunit 

測試運行正常,但代碼覆蓋開始時,我得到這個:

Generating code coverage report, this may take a moment.PHP Warning: mkdir(): Permission denied in /usr/share/php/PHPUnit/Util/Filesystem.php on line 209 
PHP Stack trace: 
PHP 1. {main}() /usr/bin/phpunit:0 
PHP 2. PHPUnit_TextUI_Command::main() /usr/bin/phpunit:52 
PHP 3. PHPUnit_TextUI_Command->run() /usr/share/php/PHPUnit/TextUI/Command.php:147 
PHP 4. PHPUnit_TextUI_TestRunner->doRun() /usr/share/php/PHPUnit/TextUI/Command.php:214 
PHP 5. PHPUnit_Util_Report::render() /usr/share/php/PHPUnit/TextUI/TestRunner.php:479 
PHP 6. PHPUnit_Util_Filesystem::getDirectory() /usr/share/php/PHPUnit/Util/Report.php:87 
PHP 7. mkdir() /usr/share/php/PHPUnit/Util/Filesystem.php:209 

Warning: mkdir(): Permission denied in /usr/share/php/PHPUnit/Util/Filesystem.php on line 209 

Call Stack: 
    0.0003  322324 1. {main}() /usr/bin/phpunit:0 
    0.0521 4658252 2. PHPUnit_TextUI_Command::main() /usr/bin/phpunit:52 
    0.0521 4658716 3. PHPUnit_TextUI_Command->run() /usr/share/php/PHPUnit/TextUI/Command.php:147 
    0.5944 12773356 4. PHPUnit_TextUI_TestRunner->doRun() /usr/share/php/PHPUnit/TextUI/Command.php:214 
    37.1550 24746768 5. PHPUnit_Util_Report::render() /usr/share/php/PHPUnit/TextUI/TestRunner.php:479 
    37.1550 24746768 6. PHPUnit_Util_Filesystem::getDirectory() /usr/share/php/PHPUnit/Util/Report.php:87 
    37.1560 24746984 7. mkdir() /usr/share/php/PHPUnit/Util/Filesystem.php:209 

之前我安裝的Xdebug,運行PHPUnit不帶任何參數只是工作精細。

我認爲這只是一個愚蠢的許可問題,源自我的PECL安裝Xdebug,但它看起來像/ usr/share/php/phpunit中的所有內容都應該作爲root權限,soooooo ...任何想法?

+0

你在運行'phpunit'的目錄有什麼權限? –

+0

只讀...它曾經工作,但... – stantonk

回答

0

錯誤消息只是告訴你,mkdir不能創建文件夾某處但不是它試圖這樣做的地方。

我假設你有一個phpunit.xml.dist,其中coverage-html類型的<logger>被定義爲你的機器上不存在的目標,你的當前用戶也沒有寫訪問權限。

如果沒有somne​​one告訴它,PHPUnit不會生成覆蓋率報告,如果您不在cli上執行,那麼phpunit.xml是唯一的選擇。