UseInMemoryDatabase 上下文未在单元测试之间共享

UseInMemoryDatabase context isn't being shared across unit tests

我正在使用 Entity Framework Core 2.0-preview1 和 InMemory 2.0-preview1。 每个单元测试 class 继承一次性 class 创建一个新的内存数据库,其父级可以使用。

public Constructor()
{
    var services = new ServiceCollection();

    services.AddEntityFrameworkInMemoryDatabase()
        .AddDbContext<DBContext>(o => o.UseInMemoryDatabase("Test"));

    var serviceProvider = services.BuildServiceProvider();

    Context = serviceProvider.GetRequiredService<DBContext>();
}

给数据库命名的问题是它不能在多个测试之间共享,因此每个测试都会创建一个新的上下文,导致每个单元测试持续几秒钟,这对我的构建服务器来说是不可接受的。我找不到太多关于为什么在 2.0 中更改此内容或如何克服此问题的文档。 我试过使用新的 .UseTransientInMemoryDatabase,但这似乎没有任何改变。

我使用 xUnit 夹具为我的所有测试实例提供保存数据库上下文。这样我就避免了每次测试的上下文创建开销,从而大大加快了构建服务器的速度。