Visual PHPUnit 内部错误,打开失败需要“PHP/CodeCoverage/Filter.php”

Posted

技术标签:

【中文标题】Visual PHPUnit 内部错误,打开失败需要“PHP/CodeCoverage/Filter.php”【英文标题】:Visual PHPUnit Internal Error, Failed opening require 'PHP/CodeCoverage/Filter.php' 【发布时间】:2014-08-17 14:52:11 【问题描述】:

我尝试过使用 Visual phpUnit。安装说明 (here) 相当不准确,但安装完成后,在浏览器中打开项目页面时出现 500 内部错误。

深入研究 apache 错误日志给了我以下错误:

PHP Fatal error:  require_once(): Failed opening required 'PHP/CodeCoverage/Filter.php'

(include_path='.:/usr/share/php:/usr/share/pear:/home/gabriel/Projets/Code/ActiMeeting/web/phpunit:/usr/bin/pear') 
in /usr/share/php/PHPUnit/Autoload.php on line 46

PHPUnit 运行良好,但担心我使用的是 PEAR 或 PHPUnit 的过时版本,我花了一个下午卸载/重新安装它们。现在我回到起点,PHPUnit - 因为找不到 PEAR 而停止工作 - 终于再次工作了。

但我仍然收到此错误。我已经检查了 Visual PHPUnit 的 bootstrap.php 文件中的“pear_path”是正确的,但是不知何故,当被 Apache 调用时,PHPUnit 突然失去了 PEAR。

如何确保 Apache 可以使用正确的依赖项启动 PHPUnit?我尝试编辑 php.ini 并积极定义 PEAR 的路径,但没有运气。

【问题讨论】:

你还记得这个问题的解决方法吗?提前致谢 【参考方案1】:

/usr/bin/pear 是一个可执行文件,而不是 pear 文件所在的目录。

通过在包含路径中使用 pear 的 php_dir 来解决此问题。在命令行中获取它

pear config-get php_dir

将其添加到 php.ini 中的include_path,然后重新启动 apache。

【讨论】:

pear confing-get php-dir 的输出为 ̀/usr/share/php。我把它放在/etc/php5/apache2/php.ini中的include_path,重启apache得到如下错误: ̀PHP Fatal error: require_once(): Failed opening required 'PHP/CodeCoverage/Filter.php' (include_path='.:/usr/share/php:/var/www/VisualPHPUnit:/usr/share/php') in /usr/share/php/PHPUnit/Autoload.php on line 46 基本上连那个都找不到pear。我真的不认为有解决办法... PHPUnit 安装在哪里?运行pear list -c phpunit时是否列出? 它在pear list -c phpunit下列出,它安装在/usr/bin/phpunit下。 PHPUnit 本身工作正常,但是当 Visual PHPUnit 尝试使用它时,它会中断。

以上是关于Visual PHPUnit 内部错误,打开失败需要“PHP/CodeCoverage/Filter.php”的主要内容,如果未能解决你的问题,请参考以下文章

致命错误:require():打开所需文件失败

安装 PHPUnit 时连接失败

PHPUnit测试失败

PHPunit - 错误

phpunit 测试返回 302 验证错误,为啥不返回 422

visual studio 2017社区构建失败,没有显示任何错误