繁体   English   中英

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

[英]PHPUnit CodeIgniter Generate Fixtures PHP Fatal error: Class 'PHPUnit_Framework_TestCase' not found

因此,安装了PHPUnit和CodeIgniter:

http://d.hatena.ne.jp/Kenji_s/20120117/1326763908

由于PEAR已被弃用,因此无法下载。 所以不得不下载phpunit phar文件:

http://phpunit.de/manual/4.0/en/installation.html#installation.phar

因此能够进行一些测试以使其正常运行。 将我的phpunit.phar移至/ usr / local / bin并运行测试目录:

php /usr/local/bin/phpunit.phar

并且所有测试均正确运行。 但是,当我尝试运行php生成固定装置和php generate.php固定装置时:

PHP Fatal error:  Class 'PHPUnit_Framework_TestCase' not found in  /www/test/application/third_party/CIUnit/libraries/CIUnitTestCase.php on line 15

Fatal error: Class 'PHPUnit_Framework_TestCase' not found in /www/test/application/third_party/CIUnit/libraries/CIUnitTestCase.php on line 15

好像没有找到phar文件中的类,或者至少它们的顺序不正确? 有趣的是,它可以很好地运行测试,但不能生成固定装置。

另外,我还使用composer安装了phpunit,因此我也安装了/ www / test / vendor / bin / phpunit。

任何帮助,将不胜感激。

尽管我不使用CodeIgniter,但我的代码中也遇到了同样的问题。 尝试运行测试将导致错误消息:

找不到类“ PHPUnit_Framework_TestCase”

值得的是,通过在测试类声明中添加反斜杠来解决此问题。

// Before
namespace IMAVendor\Super\Duper;

class MyClassTest extends PHPUnit_Framework_TestCase

// After
namespace IMAVendor\Super\Duper;

class MyClassTest extends \PHPUnit_Framework_TestCase
                          ^
                Added this backslash here

这似乎与名称空间和phpunit中内置的自动加载器有关。 我有用于项目代码的自动加载程序,似乎它正在尝试从我的代码加载phpunit的类。 我不太确定为什么在项目名称空间中找不到它时为什么不尝试从“基础”中加载它(这很可能是由于我自己的自动加载器出错)。

我知道这是一个古老的问题,但是我会把它留在这里,以防可能对某人有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM