PHPUnit自动加载程序错误:Class';Yii';找不到

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

我正在尝试开始PHPUnit测试

我正在使用composer加载PHPUnit 4.5、Yii 1.1.14和我们构建的一些自定义Yii包。 在这些定制包中,我们使用Yii类自动加载一些设置了一些别名的文件

在运行我们的应用程序时,我们手动包含基本Yii文件,然后运行composer生成的自动加载

问题是,当我们运行PHPUnit。。作曲家自动加载首先运行。即使在使用include指定引导文件时:

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": [ 
        ... 
    ] 
}