我正在尝试开始 PHPUnit 测试。
我正在使用 composer 加载 PHPUnit 4.5 、 Yii 1.1.14 和我们构建的一些自定义 Yii 包。在这些自定义包中,我们使用 Yii 类自动加载一些设置别名的文件。
在运行我们的应用程序时,我们手动包含基本 Yii 文件,然后运行 composer 生成的自动加载。
问题是,当我们运行 PHPUnit 时,首先运行 composer 自动加载。即使使用包含指定引导文件:
bin/phpunit --bootstrap carcass/phpunit.bootstrap.php
导致以下异常:
Fatal error: Class 'Yii' not found
事实上,自动加载似乎在--
解析选项之前就已经运行了:
bin/phpunit --help
导致相同的错误。删除自动加载允许 PHPunit 运行。
有没有办法解决?
我尝试在我们的主 composer.json 中为 Yii 基本文件放置一个自动加载,但是子包的自动加载首先运行......同样的错误。
我还尝试在每个子包中为 Yii 基本文件放置一个自动加载。但是当作曲家使用require
. 我也不是这个选项的忠实拥护者,因为它严格定义了 Yii 定义的来源以及实际上不需要知道的子包。