未捕获的错误:找不到类“PHP_Token_ELLIPSIS”

Posted

技术标签:

【中文标题】未捕获的错误:找不到类“PHP_Token_ELLIPSIS”【英文标题】:Uncaught Error: Class 'PHP_Token_ELLIPSIS' not found 【发布时间】:2020-10-02 04:13:19 【问题描述】:

尝试执行命令生成代码覆盖率报告

phpunit --coverage-html 报告

测试执行成功但未能生成报告并抛出以下错误:

Class 'php_Token_ELLIPSIS' not found in C:\xamppNew\php\pear\PHP\Token\Stream.php:205

【问题讨论】:

你安装了覆盖模块吗?先试试:composer require --dev phpunit/php-code-coverage 嗨 noam,覆盖模块在那里 C:\xamppNew\php\pear\PHP\CodeCoverage 当您运行测试和覆盖率时,您能否编辑您的问题以包含整个输出?最好不要使用照片。 嗨,Noam,问题已解决。在 phpunit.xml 文件的白名单目录标签下,我提到了不需要的测试文件的名称。删除文件名并仅保留它工作的目录后。无论如何,谢谢诺姆。 你可以回答自己的问题并将其标记为正确答案,以便其他人以后看到这个问题时有提示。 【参考方案1】:

您的屏幕截图和书面问题均不包含有关您正在使用的 PHP 版本的信息。但我们可以做一些侦探工作:您的错误消息包含PHPUnit_TextUI_Command。 PHPUnit 在你这一年没有使用过这样的类名。您的路径包含pear,建议您使用 PEAR 安装 PHPUnit(我想知道如何)。多年未使用基于 PEAR 的安装。

看来您使用的是过时的 PHPUnit 版本,并且 PHPUnit 的依赖项过时。 PHPUnit 的依赖项之一(即 php-token-stream)不支持 test(ed) 代码中的语法。

【讨论】:

【参考方案2】:

首先感谢 Sebastian Bergmann 调查该问题并从您的角度提供最佳意见,即使您发现缺少一些必需的信息来回答此问题。 实际上我没有使用 PEAR 安装 PHPUnit。但是我安装了 XAMPP,在这种情况下 PHP 和 PHPUnit 也随之而来。 在我的系统中运行的当前版本的 PHP 和 PHPUnit 分别是 PHP 7.2.27 和 PHPUnit 3.7.21,你猜对了,PHPunit 是过时的。

但正如我在与诺姆的谈话中提到的那样,我仍然能够解决这个问题。 从 phpunit.xml 文件中,我删除了我想要生成 PHPUnit 测试覆盖率报告的文件的名称。现在只保留要测试的文件的路径并且它可以工作。

早期方法:

目前的工作方法:

【讨论】:

以上是关于未捕获的错误:找不到类“PHP_Token_ELLIPSIS”的主要内容,如果未能解决你的问题,请参考以下文章

500 错误“未捕获的错误:找不到类 '\XF\App'”

为啥致命错误:未捕获的错误:找不到类“Illuminate\Foundation\Application”

为啥我收到 PHP 致命错误:未捕获的错误:找不到类“MyClass”? [复制]

PHP致命错误:未捕获错误:找不到类

未捕获的错误:找不到类“SimpleXMLElement”

未捕获的错误:找不到类 'WindowsAzure\Common\ServicesBuilder' - MS Azure | PHP