第二个数据库上下文在单元测试中不可用

Second DB Context not usable in unit tests

在我设法让多个数据库上下文在 asp.net 样板中工作(在这里 得到一些帮助)之后,我 运行 遇到了另一个问题。在单元测试中,当我像这样使用其中一个附加数据库上下文时:

 using (var uow = this.UnitOfWorkManager.Begin())
 {
   var r = this.SlipLineRepository.GetAll().ToList();
 }

我收到这个错误:

Abp.AbpException : Could not resolve DbContextOptions for SlipStreamAPI.SlipStreamDB.miSlipLiveContext, SlipStreamAPI.EntityFrameworkCore, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.

所以我的问题是: 1)是否可以针对内存数据库上下文进行测试,如果它们是第二个、第三个等上下文? 2) 如果是,我应该怎么做才能让它发挥作用?

你应该 register DbContextOptionsServiceCollectionRegistrar.cs:

public static void Register(IIocManager iocManager)
{
    // ...

    var builder = new DbContextOptionsBuilder<miSlipLiveContext>();
    builder.UseInMemoryDatabase(Guid.NewGuid().ToString()).UseInternalServiceProvider(serviceProvider);

    iocManager.IocContainer.Register(
        Component
            .For<DbContextOptions<miSlipLiveContext>>()
            .Instance(builder.Options)
            .LifestyleSingleton()
    );
}