我有一个laravel软件包,它使用GraphQL (灯塔)扩展我的基础项目。在添加包和执行查询等时,一切都很好。
但是,由于我试图在测试文件中发出postGraphQL请求,其中给定的查询或突变使用@广播指令,因此请求失败:
Add the SubscriptionServiceProvider to your config/app.php to enable subscriptions.在启动测试环境时,SubscriptionServiceProvider会添加到app配置的提供者数组中。我使用管弦乐队/testbench,并在getEnvironmentSetUp方法中添加提供程序。
但是我认为生成的postGraphQL请求没有添加SubscriptionServiceProvider。我将其追溯到Illuminate\Foundation\Testing\Concerns\MakesHttpRequest类,该类创建了一个新的内核对象,该对象执行请求,并且似乎不像应该引导的那样启动。
也许问题是我在一个laravel包中,而不是在一个“常规”laravel项目中,在这个项目中,人们会在config/app.php中定义SubscriptionServiceProvider。
这是窃听器还是我漏掉了什么?这里有谁也有这个问题吗?不幸的是,我在这里找不到任何东西,也找不到谷歌。
发布于 2020-02-19 13:33:40
我解决了!现在,我不再尝试使用管弦乐队的SubscriptionServiceProvider方法将getEnvironmentSetUp添加到应用程序环境中,而是将它与LighthouseServiceProvider一起添加到方法getPackageProviders中,如下所示:
protected function getPackageProviders($app)
{
return [
LighthouseServiceProvider::class,
SubscriptionServiceProvider::class,
MyOwnPackageProvider::class,
];
}它就像一种魅力:)
https://stackoverflow.com/questions/60229494
复制相似问题