PHPunit正在运行,但是我收到此代码覆盖率错误,并且没有获得代码覆盖率报告。
有谁知道如何解决这个问题?
谢谢,
德棉。
demian@dimbo-TP:/var/www/z2d2/tests$ phpunit
PHPUnit 3.5.15 by Sebastian Bergmann.
...
Time: 1 second, Memory: 13.00Mb
OK (3 tests, 4 assertions)
Generating code coverage report, this may take a moment.PHP Fatal error: Class 'PHP_Token_Stream' not found in /usr/share/php/PHP/Token/Stream/CachingFactory.php on line 68
PHP Stack trace:
PHP 1. {main}() /usr/bin/phpunit:0
PHP 2. PHPUnit_TextUI_Command::main() /usr/bin/phpunit:49
PHP 3. PHPUnit_TextUI_Command->run() /usr/share/php/PHPUnit/TextUI/Command.php:129
PHP 4. PHPUnit_TextUI_TestRunner->doRun() /usr/share/php/PHPUnit/TextUI/Command.php:188
PHP 5. PHP_CodeCoverage_Report_HTML->process() /usr/share/php/PHPUnit/TextUI/TestRunner.php:363
PHP 6. PHP_CodeCoverage_Report_HTML->addItems() /usr/share/php/PHP/CodeCoverage/Report/HTML.php:135
PHP 7. PHP_CodeCoverage_Report_HTML_Node_Directory->addFile() /usr/share/php/PHP/CodeCoverage/Report/HTML.php:214
PHP 8. PHP_CodeCoverage_Report_HTML_Node_File->__construct() /usr/share/php/PHP/CodeCoverage/Report/HTML/Node/Directory.php:156
PHP 9. PHP_CodeCoverage_Util::getLinesToBeIgnored() /usr/share/php/PHP/CodeCoverage/Report/HTML/Node/File.php:169
PHP 10. PHP_Token_Stream_CachingFactory::get() /usr/share/php/PHP/CodeCoverage/Util.php:271
Fatal error: Class 'PHP_Token_Stream' not found in /usr/share/php/PHP/Token/Stream/CachingFactory.php on line 68
Call Stack:
0.0002 326940 1. {main}() /usr/bin/phpunit:0
0.0434 666604 2. PHPUnit_TextUI_Command::main() /usr/bin/phpunit:49
0.0435 667084 3. PHPUnit_TextUI_Command->run() /usr/share/php/PHPUnit/TextUI/Command.php:129
0.0943 4312004 4. PHPUnit_TextUI_TestRunner->doRun() /usr/share/php/PHPUnit/TextUI/Command.php:188
1.1150 13272196 5. PHP_CodeCoverage_Report_HTML->process() /usr/share/php/PHPUnit/TextUI/TestRunner.php:363
1.1521 14100768 6. PHP_CodeCoverage_Report_HTML->addItems() /usr/share/php/PHP/CodeCoverage/Report/HTML.php:135
1.1521 14101320 7. PHP_CodeCoverage_Report_HTML_Node_Directory->addFile() /usr/share/php/PHP/CodeCoverage/Report/HTML.php:214
1.1521 14103132 8. PHP_CodeCoverage_Report_HTML_Node_File->__construct() /usr/share/php/PHP/CodeCoverage/Report/HTML/Node/Directory.php:156
1.1595 14122724 9. PHP_CodeCoverage_Util::getLinesToBeIgnored() /usr/share/php/PHP/CodeCoverage/Report/HTML/Node/File.php:169
1.1595 14123076 10. PHP_Token_Stream_CachingFactory::get() /usr/share/php/PHP/CodeCoverage/Util.php:271
答案 0 :(得分:10)
您正在运行PHPUnit 3.5.x,因此可以使用以下命令安装所需的令牌流版本:
sudo pear install --force --alldeps phpunit/PHP_CodeCoverage-1.0.2
如果你想更新到当前版本的phpunit那么单独的行
sudo pear install --force --alldeps phpunit/phpunit
将完成这项工作,但如果我没记错的话,你正在尝试使用Zend Framework测试环境并且只适用于PHPUnit 3.5.15
如果两个选项都失败或不适合
sudo pear install --force phpunit/PHP_TokenStream
http://dustyreagan.com/downgrade-phpunit-3-6-to-3-5-15/
重要提示:如果您通过PEAR安装PHPUnit。此安装方法不再 支持和http://pear.phpunit.de/不迟于关闭 2014年12月31日。
请阅读http://phpunit.de/manual/current/en/installation.html和 学习如何从PHAR中使用PHPUnit或通过Composer安装它。
答案 1 :(得分:2)
require_once('PHP/Token/Stream/Autoload.php');
答案 2 :(得分:1)
尝试通过重新安装修复phpunit:
$ pear upgrade -f phpunit
答案 3 :(得分:0)
用pear安装phpunit对我来说根本不起作用。
我最终做的是(在某些目录中,例如 / home / USERNAME / phpunit ):
wget http://pear.phpunit.de/get/phpunit.phar
chmod +x phpunit.phar
在.bash.rc中添加结尾
export PATH=${PATH}:PATH_WHERE_YOU_PUT_phpunit.phar
在我的例子中,PATH_WHERE_YOU_PUT_phpunit.phar将是/ home / USERNAME / phpunit
之后,phpunit可以在任何目录中使用命令 phpunit.phar 执行
答案 4 :(得分:0)
某些Linux发行版的选项可能是使用yum或apt-get来安装phpunit。
我正在使用Fedora 17并使用yum安装phpunit,一切正常。不确定Ubuntu / Mint包的工作情况。
在Windows中,我使用了梨,它在那里工作得很好但是因为我在yum中找到了phpunit,我想我先试试。