【问题标题】:.Net Core Entity Framework core, using new database for each test in same test class.Net Core Entity Framework 核心,为同一测试类中的每个测试使用新数据库
【发布时间】:2019-03-19 22:15:57
【问题描述】:

我有一些测试来测试修补功能。我正在使用这个自定义工厂 https://github.com/aspnet/Docs/blob/master/aspnetcore/test/integration-tests/samples/2.x/IntegrationTestsSample/tests/RazorPagesProject.Tests/CustomWebApplicationFactory.cs

对于每个测试,我想创建新的数据库或至少再次清除和种子数据。因为其他测试正在弄乱数据。

【问题讨论】:

    标签: .net-core entity-framework-core


    【解决方案1】:

    你可以使用

     db.Database.EnsureDeleted();
    

    这确保上下文的数据库不存在。如果它不存在,则不采取任何措施。如果确实存在,则删除数据库。

    【讨论】:

    • 是的,我在某个地方看到过,但不确定在哪里使用它。
    • 在上述第 44 行的工厂中 - 就在 EnsureCreated() 之前
    • 是的,但它只在范围内运行一次,当我在一个文件中运行所有测试时,它在单个范围内,所以测试共享上下文,因此共享相同的数据
    • 使用 IClassFixture - 见 here...
    猜你喜欢
    • 1970-01-01
    • 2020-06-16
    • 2011-06-24
    • 1970-01-01
    • 2019-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多