phpunit/framework/testcase.php,为什么,致命错误:类'PHPUnit_Framework_TestCase'找不到…? Dovov编程网...

PHPUnit文档用来说明包含/需要PHPUnit / Framework.php,如下所示:

require_once ('PHPUnit/Framework/TestCase.php');

UPDATE

从PHPUnit 3.5开始,有一个内置的自动加载器类将为您处理:

require_once 'PHPUnit/Autoload.php';

感谢凤凰指出这一点!

对于那些在2017-02-03更新phpunit到版本6(例如使用composer)后到达的人,你可能会得到这个错误,因为phpunit代码现在已经命名空间(检查更改日志 )。 您将需要重构像\PHPUnit_Framework_TestCase \PHPUnit\Framework\TestCase

你可能会得到这个错误,因为你命名空间的文件。 如果是这样,您需要指定PHPUnit_Framework_TestCase位于全局名称空间中,方法是在反斜杠之前加上:

namespace AcmeInc\MyApplication\Tests class StackTest extends \PHPUnit_Framework_TestCase {}

我提交了一个粗略的PR ,开始交谈,纠正文件 。

wget https://phar.phpunit.de/phpunit.phar chmod +x phpunit.phar mv phpunit.phar /usr/local/bin/phpunit

运行单个testing

然后运行PHPunittesting:

phpunit test.php

testing文件的内容如下:

运行testing套件

testing套件的configuration:demosuite.xml。 demo是包含所有testing的目录。 testing文件必须命名为*_test.php ( suffix )。

demo

testing套件使用以下命令运行:

phpunit -c demosuite.xml --testsuite DemoTestSuite

假设:

Phpunit(3.7)在控制台环境中可用。

行动:

在控制台中input以下命令:

SHELL> phpunit "{{PATH TO THE FILE}}"

注释:

除非不想在控制台中运行,否则不需要在新版本的PHPUnit中包含任何内容。 例如,在浏览器中运行testing。

我在PHP5上运行PHPUnittesting,然后,我也需要支持PHP7。 这就是我所做的:

在composer.json中:

"phpunit/phpunit": "~4.8|~5.7"

在我的PHPUnit引导文件(在我的情况下,/ /tests/bootstrap.php ):

// PHPUnit 6 introduced a breaking change that // removed PHPUnit_Framework_TestCase as a base class, // and replaced it with \PHPUnit\Framework\TestCase if (!class_exists('\PHPUnit_Framework_TestCase') && class_exists('\PHPUnit\Framework\TestCase')) class_alias('\PHPUnit\Framework\TestCase', '\PHPUnit_Framework_TestCase');

换句话说,这将适用于最初为PHPUnit 4或5编写的testing,但也需要在PHPUnit 6上工作。

如果你有Centos或其他Linux发行版,你必须安装phpunit软件包,我用yum install phpunit来完成这个工作。 也许你可以不得不添加一个仓库,但我认为它必须与默认的工作顺利(我有CentOS 7)

很可能你正在运行WordPress核心testing,并且最近已经把你的PhpUnit升级到版本6.如果是这样的话,那么最近在PhpUnit中对命名空间的改变将破坏你的代码。

幸运的是, https ://core.trac.wordpress.org/changeset/40547上的核心testing有一个补丁可以解决这个问题。 它还包括对您的设置中可能没有的travis.yml的更改; 如果是这种情况,那么你需要编辑.diff文件来忽略Travis补丁。

编辑补丁文件以删除补丁的Travis部分,如果你不需要的话。 从文件顶部删除到这一行的上方:

Index: /branches/4.7/tests/phpunit/includes/bootstrap.php

将diff保存在/ includes /目录上面的目录中 – 在我的情况下,这是Wordpress目录本身

使用Unix修补工具修补文件。 您还需要删除前几个斜线以从绝对移动到相对目录结构。 从上面的第3点可以看到,在include目录之前有五个斜杠,其中-p5标志将会被删除。

$ cd [WORDPRESS DIRECTORY] $ patch -p5 < changeset_40547.diff

我做了这个testing后,我的testing再次正确运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值