MAMP 上的 PHPUnit - 引发致命错误

Posted

技术标签:

【中文标题】MAMP 上的 PHPUnit - 引发致命错误【英文标题】:PHPUnit on MAMP - throwing a fatal error 【发布时间】:2018-09-07 10:54:44 【问题描述】:

我试图让 phpUnit 与 OS High Sierra 上的 MAMP 一起正常运行,当尝试运行一个简单的测试时它会抛出

“致命错误:require_once(): 无法打开所需的'PHPUnit/Framework/TestCase.php'

我查看了几篇 *** 文章,他们建议将其更改为“autoload.php”

然后抛出...

"打开失败需要'PHPUnit/Autoload.php'"

这是在带有 PHP 7.2 的 Zend Framework 1 上。

【问题讨论】:

【参考方案1】:

如果您使用 Composer 安装 PHPUnit,请确保您像这样运行它:

./vendor/bin/phpunit --bootstrap vendor/autoload.php tests/EmailTest

或者像这样在你的phpunit.xml 中包含vendor/autoload.php

<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/6.1/phpunit.xsd"
         backupGlobals="false"
         colors="true"
         bootstrap="vendor/autoload.php"
>

请参阅docs。

【讨论】:

是的。我使用 Composer 安装 phpUnit。使用 ./vendor 返回“找不到目录” 我发现 OS High Sierra 在尝试设置单元测试时简直就是一场噩梦 @S.Edward 你是如何安装 PHPUnit 的?你跑composer install --dev phpunit/phpunitcomposer global install phpunit/phpunit 了吗? 全局安装。这是我遇到的第一个错误......“警告:require_once(/Applications/MAMP/bin/php/php7.1.8/lib/php/composer/autoload_real.php):无法打开流:没有这样的文件或/Applications/MAMP/bin/php/php7.1.8/lib/php/Autoload.php 中第 5 行的目录" @S.Edward 您能否更新您的问题并添加您的项目结构和用于运行 PHPUnit 的完整命令?【参考方案2】:

问题在于框架的版本。 1.8 是行不通的。 Phpunit 与 3.0.3 Skeleton 一起工作得很好。我将研究将代码库迁移到 3.0.3

感谢您的帮助

【讨论】:

以上是关于MAMP 上的 PHPUnit - 引发致命错误的主要内容,如果未能解决你的问题,请参考以下文章

phpunit 找不到类,PHP 致命错误

PHPUnit 显示抛出致命错误异常的传递方法

为啥,致命错误:在...中找不到类“PHPUnit_Framework_TestCase”?

PhpUnit 未显示 php 致命错误的堆栈跟踪

PhpUnit 未显示 php 致命错误的堆栈跟踪

PHPUnit CodeIgniter 生成夹具 PHP 致命错误:找不到类“PHPUnit_Framework_TestCase”