安装了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文件中的类,或者至少它们的顺序不正确?有趣的是,它运行测试很好但不是生成固定装置。
另外我还使用composun安装了phpunit,所以我也安装了/ www / test / vendor / bin / phpunit。
任何帮助都将不胜感激。
答案 0 :(得分:0)
我的代码中遇到了同样的问题,尽管我没有使用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的类。我不确定为什么当它无法在项目命名空间中找到它时,它没有尝试从'base'加载它(这很可能是由于我自己的自动加载器有故障)。
我知道这是一个老问题,但我会把它留在这里,以防它可能在某个地方帮助某人。