如何在测试中禁用Akka死信警告

如何在测试中禁用Akka死信警告,akka,akka-stream,akka-testkit,Akka,Akka Stream,Akka Testkit,我最近升级到Akka 2.6.10。现在,当我使用ActorTestKit为我的参与者运行测试时,我看到了很多类似的警告: [WARN] [12/16/2020 09:03:14.995] [AsyncTestWithControlledTime-akka.actor.internal-dispatcher-3] [akka://AsyncTestWithControlledTime/user/$a] received dead letter: GotCriticalFailure(my cus

我最近升级到Akka 2.6.10。现在,当我使用
ActorTestKit
为我的参与者运行测试时,我看到了很多类似的警告:

[WARN] [12/16/2020 09:03:14.995] [AsyncTestWithControlledTime-akka.actor.internal-dispatcher-3] [akka://AsyncTestWithControlledTime/user/$a] received dead letter: GotCriticalFailure(my custom error message,akka.stream.AbruptStageTerminationException: GraphStage [akka.stream.impl.ActorRefSinkStage$$anon$1@15cc9eaa] terminated abruptly, caused by for example materializer or actor system termination.)
AyncTestWithControlledTime是我编写的一个类,是我所有测试的超级类。它创建测试工具包并为actor系统提供配置。但是,尝试通过配置(例如使用
akka.log-dead-letters=off
)抑制警告没有帮助

当我的参与者订阅了一个流并且测试结束时,我通常会收到警告,因此流没有被正确地取消


如何禁用警告。如果我只能在测试完成且测试套件actor系统关闭时才能抑制它们,那将是最好的。

该日志条目来自akka测试套件的
akka.testkit.TestEventListener
(或它的某个子类)部分,只有通过配置
akka.loggers=[“akka.testkit.TestEventListener”]

akka.log死信
设置仅对默认死信处理程序有效,而对testkit处理程序无效


如果您不使用日志测试工具包,您只需在测试中从您的配置中删除该配置,如果您使用它,您可能可以使用带有特定警告过滤器的
TestEvent.Mute
Mute
发布在事件总线上,并由
TestEventListener

我不确定是否添加
akka.log-dead letters=off
是一个解决方案。文档()声明您的
GraphStageLogic没有任何处理程序回调
。如果您在项目中找到
GraphStage
,并确保它们有
try{}catch{case e:Throwable=>failStage(e)}
,我想这就是您的问题所在。