来自Autoloader for distributed PHP plugins that includes composer packages
的问题我正在编写一个发布CMS分布式扩展的应用程序。将每个分布式扩展视为包含扩展代码及其所有依赖项(复制的编写器包)的zip。
在软件包中,有一个加载它的依赖项的自动加载器。
我正在使用PHPUnit来测试依赖项是否正确加载。但是当在测试类中实例化类时,依赖关系已经通过composer加载了。
我在下面的测试中执行composer exec phpunit TestAutoloader
。 如何编写测试以便不从编写器加载依赖项?
测试代码
class TestAutoloader extends TestCase
{
/**
* @test
*/
public function test_can_load_dependencies() {
$myClass = new MyClass();
$reflection = new \ReflectionClass($myClass->client());
echo $reflection->getFileName(); // This is loading from vendors folder instead of uploads/dependency
//$this->assertTrue(class_exists('GuzzleHttp\Client'));
}
}
说明的问题
/upload/MyClass.php
should load
/upload/dependencies/example/src/MyDependency.php
but the test is loading from
/vendor/example/src/MyDependency.php