【问题标题】:Integration tests Migration from .NET 5 to 6 failed at Mediatr Commands集成测试从 .NET 5 迁移到 6 在 Mediatr 命令中失败
【发布时间】:2021-12-22 08:19:24
【问题描述】:

我正在将应用程序从 .NET 5 迁移到 .NET 6,包括集成测试

在集成测试中运行以下命令时出现错误

      // Arrange
        await _mediatr.Send(new MyCommand());

为 MediatR.IRequestHandler`2[MyCommand] 类型的请求构造处理程序时出错。向容器注册您的处理程序。有关示例,请参阅 GitHub 中的示例。

我从 api 中删除了启动类,只使用了 program.cs

我的情况出了什么问题?

也添加内部异常

无法从根提供程序解析“MediatR.IRequestHandler`2[Mycommand]”,因为它需要范围服务“Domain.MyDbContext”。

【问题讨论】:

  • 你如何注册你的处理程序?实际上,在迁移过程中也不需要从通用托管模型更改为新的最小模型。
  • @GuruStron code services.AddMediatR(Assembly.GetExecutingAssembly()); code 这就是我在 API program.cs 文件中注册处理程序的方式“实际上,在迁移过程中也不需要从通用托管模型更改为新的最小模型。 " -> 是的,我知道,但需要这样做:)

标签: c# integration-testing .net-5 .net-6.0 mediatr


【解决方案1】:

如果您查看内部异常,似乎问题在于Domain.MyDbContext 的注册。您的命令处理程序。要求将其注册为范围服务。

【讨论】:

  • 但同样适用于 .Net 5。因此 .NET 6 中的任何更改
猜你喜欢
  • 2020-09-07
  • 1970-01-01
  • 2022-12-12
  • 2017-05-26
  • 2021-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-15
相关资源
最近更新 更多