Phpunit 使用postGraphQL进行Lighthouse测试在使用订阅时失败

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

我有一个laravel包,它使用GraphQL(Lighthouse)来扩展我的基础项目。在添加我的包和执行查询等操作时,一切正常

但是,由于我试图在测试文件中发出postGraphQL请求,其中给定的查询或变异使用@broadcast指令,因此请求失败,原因是:

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,
    ];
}