我是php的新手,我必须为应用做测试。我正在尝试进行单元测试,但会显示错误消息。我有很多周前,我无法解决它,请帮助我!
消息说:致命错误:找不到类'CDbTestCase'。
我阅读并遵循了许多有关此问题的教程,但它不起作用。
我正在使用Yii,Eclipse IDE和Composer。
我认为问题出在bootstrap.php中,但我不使用它,因为我正在使用composer,这就是composer.json
{
"require-dev": {
"yiisoft/yii": "1.1.*",
"phpunit/phpunit": "4.6.*",
"phpunit/phpunit-selenium": ">=1.2",
"codeception/codeception":"*",
"phpunit/dbunit": ">=1.2"
},
"autoload": {
"psr-0": {"": "vendor/autoload.php"},
"psr-4": {"": "/../framework/test/CDbTestCase.php"}
}
}
答案 0 :(得分:1)
加载yii框架需要bootstrap文件。 CDbTestCase是yii框架的一部分,因此如果您的测试依赖于yii的单元测试相关类,那么如果不包含yii将会出现此错误。
使用随附的引导程序文件,并确保您还包含composer的autoload.php文件。我通常将此添加到我的yii配置文件中(我相信默认情况下,yii使用test.php配置文件进行自定义测试相关设置。您可以在此文件中包含autoload.php)
位于yii配置文件顶部的某处
// Include composer autoload
require_once 'path/to/composer/vendor/autoload.php';
答案 1 :(得分:0)
您的Composer自动加载完全错误。
composer.json
自动加载中包含composer自动加载器“vendor / autoload.php”。只有一个自动加载器,它是使用自动加载数据以及任何库创建的。您应该解释为什么在测试中不使用引导程序文件。 PHPUnit所需的最小引导代码是包含Composer自动加载器。此外,您应该添加测试中所需的内容,并且必须执行一次,例如框架组件-YMMV的初始化。