我正在运行PHP单元,如下所示:
phpunit --debug --verbose --coverage-clover=/tmp/test.xml
并收到以下错误:
Fatal error: Class 'PHP_Token_OPEN_TAG' not found in /opt/pear/share/pear/PHP/Token/Stream.php on line 205
堆栈跟踪导致
12. PHP_Token_Stream->scan($sourceCode = '<?php\n/**\n...') /opt/pear/share/pear/PHP/Token/Stream.php:147
源代码在语法上是可以的。
此类在/opt/pear/share/pear/PHP/Token.php
中定义,但看起来无法找到。
答案 0 :(得分:2)
我在Stream.php:147中转储了spl_autoload_functions()的输出,发现有一些Aitoc自动加载器。
问题是由Aitoc Magento扩展引起的。
它们具有简单地取消注册所有自动加载器的功能。
$autoloaders = spl_autoload_functions();
if ($autoloaders and is_array($autoloaders) && !empty($autoloaders))
{
foreach ($autoloaders as $autoloader)
{
spl_autoload_unregister($autoloader);
}
}
答案 1 :(得分:0)
似乎是版本控制/自动加载问题,因为令牌包或代码覆盖率包可能未正确安装/更新。
提供
(sudo) pear install --force --alldeps phpunit/phpunit
试一试。这通常可以修复那些“奇怪的错误”。