使用phpunit测试autoloader,而不从composer加载类';自动装弹机
议员的跟进质询 我正在编写一个为CMS发布分布式扩展的应用程序。将每个分布式扩展看作一个zip,其中包含扩展代码及其所有依赖项(复制的composer包) 在包中,有一个自动加载器加载它的依赖项 我使用PHPUnit测试依赖项是否正确加载。但是在测试类中实例化类时,依赖项已经通过composer加载 我在下面的测试中执行使用phpunit测试autoloader,而不从composer加载类';自动装弹机,php,phpunit,composer-php,Php,Phpunit,Composer Php,议员的跟进质询 我正在编写一个为CMS发布分布式扩展的应用程序。将每个分布式扩展看作一个zip,其中包含扩展代码及其所有依赖项(复制的composer包) 在包中,有一个自动加载器加载它的依赖项 我使用PHPUnit测试依赖项是否正确加载。但是在测试类中实例化类时,依赖项已经通过composer加载 我在下面的测试中执行composer exec phpunit TestAutoloader如何编写测试以使依赖项不从composer加载? 测试代码 class TestAutoloader ex
composer exec phpunit TestAutoloader
如何编写测试以使依赖项不从composer加载?
测试代码
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
您不能让phpunit使用引导(
),并在引导文件中定义您自己的自定义自动加载程序(而不是默认使用composer)吗?这听起来似乎有道理,但不会影响所有其他测试吗?是否有可能针对该特定测试?