我有一堆测试,我在EF7中使用新的UseInMemory函数。当我运行它们时,其中一些失败。当我跑他们单人他们都通过。 我最好猜测这是EF7中的冲突,因为每个测试都在自己的线程中运行,并且它们都使用相同的DbContext类。我测试的 这里之一:单元测试使用Entity Framework 7,测试有时会失败?
[Fact]
public void Index()
{
DbContextOptionsBuilder<DatabaseContext> optionsBuilder = new DbContextOptionsBuilder<DatabaseContext>();
optionsBuilder.UseInMemoryDatabase();
db = new DatabaseContext(optionsBuilder.Options);
AdminController controller = new AdminController(db);
var result = controller.Index() as ViewResult;
Assert.Equal("Index", result.ViewName);
}
我重拍在每个测试的DbContext对象,但它似乎并没有做任何的不同。
对任何输入都很有帮助。谢谢:)
你如何做到这一点,如果你实际测试的ASP.NET应用程序的核心,它的配置的DbContext在其Startup.ConfigureServices方法? – ssmith
@ssmith:您可以配置您的单元测试以在内存数据上下文中使用。它与你的应用程序设置没有任何关系。 –