Я использую Zend Framework 1.10 в Ubuntu 10.04, только что установил Xdebug для генерации покрытия кода через PECL.
Если я запускаю phpunit так:
$ phpunit --coverage-html ~/coverage
Работает просто отлично. Выполняются юнит-тесты, затем генерируется выход покрытия кода. Нет сообщений об ошибках или предупреждений.
Но если я сделаю:
$ 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 без каких-либо аргументов работал просто отлично.
Полагаю, это просто глупая проблема с разрешениями, возникающая из-за моей установки Xdebug на PECL, но похоже, что все в / usr / share / php / phpunit должно быть разрешено от имени root, soooooo ... есть идеи?