You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用测试数据库上下文执行迁移?或同时注册两类上下文至IOC容器?

容器化数据库API集成测试的迁移与上下文注册问题

我正在用容器化数据库为API编写集成测试,常规流程是解析数据库上下文,在每次测试执行前调用context.Database.MigrateAsync()来完成数据库初始化。

但在一项验证数据库并发更新的测试中,我需要拦截SaveChangesAsync调用,因此在测试里注入了模拟的TestDbContext,而API本身依赖的是真实的SampleDbContext。

问题来了:当我在测试设置中解析这个模拟上下文时,它无法关联任何数据库迁移——我猜测这是因为迁移是和真实上下文实现绑定的。这导致我不得不在ConfigureTestServices调用中同步执行迁移,这种方式显然不合理。

我现在有两个可行的解决方向:

  • 如何让测试数据库上下文执行迁移?
  • 或者,如何在IOC容器中同时注册真实与测试数据库上下文类,确保测试和API都能正常工作?

内容的提问来源于stack exchange,提问作者NickL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 00:22:09