进行 laravel 的单元测试以在 AppServiceProvider::boot 中执行代码

Make laravel's unit tests to execute code inside AppServiceProvider::boot

在我的 AppServiceProvider::boot 中,我正在向 Laravel 的 Collection class 添加一些方法。然后我正在编写 UnitTests 来测试这些功能,并使用 ./artisan test MyTest

执行这些单元测试

我发现 laravel test 命令实际上是对 vendor/bin/phpunit MyTest 的调用,它不会加载 Laravel 的服务提供商。

所以问题是如何让 AppServiceProvider 在 运行 单元测试时加载?

./vendor/bin/phpunit 调用在您的 phpunit.xml -> <testsuites> 中定义的所有测试,您的问题可能是您使用 \PHPUnit\Framework\TestCase 作为您的 TestCase,在这种情况下您是 NOT 加载框架,因此您只需使用 Test\TestCase 或将测试移至 FeatureUSE Test\TestCase