Phpunit 使用postGraphQL进行Lighthouse测试在使用订阅时失败
我有一个laravel包,它使用GraphQL(Lighthouse)来扩展我的基础项目。在添加我的包和执行查询等操作时,一切正常 但是,由于我试图在测试文件中发出postGraphQL请求,其中给定的查询或变异使用@broadcast指令,因此请求失败,原因是:Phpunit 使用postGraphQL进行Lighthouse测试在使用订阅时失败,phpunit,graphql-subscriptions,laravel-lighthouse,Phpunit,Graphql Subscriptions,Laravel Lighthouse,我有一个laravel包,它使用GraphQL(Lighthouse)来扩展我的基础项目。在添加我的包和执行查询等操作时,一切正常 但是,由于我试图在测试文件中发出postGraphQL请求,其中给定的查询或变异使用@broadcast指令,因此请求失败,原因是: Add the SubscriptionServiceProvider to your config/app.php to enable subscriptions. 启动测试环境时,SubscriptionServiceProvi
Add the SubscriptionServiceProvider to your config/app.php to enable subscriptions.
启动测试环境时,SubscriptionServiceProvider
被添加到app config的providers数组中。我使用orchestra/testbench并在getEnvironmentSetUp
方法中添加提供者
但是我认为生成的postGraphQL请求没有添加SubscriptionServiceProvider
。
我将其追溯到illumb\Foundation\Testing\Concerns\MakesHttpRequest
类,该类创建了一个新的内核对象,该对象执行请求,并且似乎没有按应有的方式启动
可能问题在于我在一个laravel包中,而不是在一个“常规”laravel项目中,在这个项目中,我们将在config/app.php中定义SubscriptionServiceProvider
这是一个错误还是我遗漏了什么?这里有人也有这个问题吗?不幸的是,我在这里找不到任何东西,也在谷歌上找不到任何东西。我解决了它!
我不再尝试使用Orchestration的getEnvironmentSetUp
方法将SubscriptionServiceProvider添加到应用程序环境中,而是将其与Lighthouse服务提供商一起添加到方法getPackageProviders
中,如下所示:
它就像一个符咒:)
protected function getPackageProviders($app)
{
return [
LighthouseServiceProvider::class,
SubscriptionServiceProvider::class,
MyOwnPackageProvider::class,
];
}