进行 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
或将测试移至 Feature
和 USE Test\TestCase
在我的 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
或将测试移至 Feature
和 USE Test\TestCase