PHPUnit自动加载程序错误:Class';Yii';找不到
我正在尝试开始PHPUnit测试 我正在使用composer加载PHPUnit 4.5、Yii 1.1.14和我们构建的一些自定义Yii包。 在这些定制包中,我们使用Yii类自动加载一些设置了一些别名的文件 在运行我们的应用程序时,我们手动包含基本Yii文件,然后运行composer生成的自动加载 问题是,当我们运行PHPUnit。。作曲家自动加载首先运行。即使在使用include指定引导文件时:PHPUnit自动加载程序错误:Class';Yii';找不到,yii,phpunit,composer-php,yii1.x,Yii,Phpunit,Composer Php,Yii1.x,我正在尝试开始PHPUnit测试 我正在使用composer加载PHPUnit 4.5、Yii 1.1.14和我们构建的一些自定义Yii包。 在这些定制包中,我们使用Yii类自动加载一些设置了一些别名的文件 在运行我们的应用程序时,我们手动包含基本Yii文件,然后运行composer生成的自动加载 问题是,当我们运行PHPUnit。。作曲家自动加载首先运行。即使在使用include指定引导文件时: bin/phpunit --bootstrap carcass/phpunit.bootstrap
bin/phpunit --bootstrap carcass/phpunit.bootstrap.php
导致以下例外情况:
Fatal error: Class 'Yii' not found
事实上,自动加载似乎在解析--
选项之前就已运行:
bin/phpunit --help
结果是相同的错误。删除自动加载允许PHPunit运行
这有什么办法吗
我尝试在我们的主composer.json中为Yii基文件放置自动加载,但是子包的自动加载会首先运行。。同样的错误
我还尝试在每个子包中自动加载Yii基本文件。。但是当composer使用
require
时,我们会得到重新声明错误。我也不是这个选项的忠实粉丝,因为它严格地定义了Yii定义从何而来的子包,而这些子包实际上并不需要知道。因为自动加载类映射部分是在所有文件部分(包括来自子包的文件部分)之前首先运行的
将yii和yibase文件放在我们项目的main composer.json的类映射中解决了这个问题:
"autoload": {
"classmap": [
"composer_packages/yiisoft/yii/framework/YiiBase.php",
"composer_packages/yiisoft/yii/framework/yii.php"
],
"files": [
...
]
}