1

我正在运行 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但看起来无法找到。

4

2 回答 2

2

我将 spl_autoload_functions() 的输出转储到 Stream.php:147 中,发现有一些 Aitoc 自动加载器。

该问题是由 Aitoc Magento 扩展引起的。

他们有一个简单地取消注册所有自动加载器的功能。

$autoloaders = spl_autoload_functions();
if ($autoloaders and is_array($autoloaders) && !empty($autoloaders))
{
    foreach ($autoloaders as $autoloader)
    {
        spl_autoload_unregister($autoloader);
    }
}
于 2012-06-26T14:38:29.850 回答
0

似乎是版本控制/自动加载问题,因为令牌包或代码覆盖率包可能未正确安装/更新。

(sudo) pear install --force --alldeps phpunit/phpunit 

试一试。这通常可以解决那些“奇怪的错误”。

于 2012-06-26T13:08:30.530 回答