我正在将实体框架核心2.0-preview1
与InMemory 2.0-preview1
一起使用。
每个单元测试类都继承一个一次性类,该类创建一个父母可以使用的新内存数据库。
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
,但这似乎没有任何改变。提前谢谢。
答案 0 :(得分:0)
我使用xUnit fixture为我的所有测试实例提供了save数据库上下文。这样我就避免了每次测试的上下文创建开销,从而大大提高了构建服务器的速度。