【问题标题】:Creating Seed Data for E2E tests with EF Core使用 EF Core 为 E2E 测试创建种子数据
【发布时间】:2018-02-08 07:15:42
【问题描述】:

我已经对我的端到端测试的播种数据进行了一些研究,这些测试依赖于诸如管理员用户登录之类的东西。

我们的 API 在 EF Core 中,我无法弄清楚如何播种数据。使用 EF 6,您可以在 config.cs 文件中使用 Seed 方法,该方法在迁移运行后运行,但 EF Core 不支持此方法。

EF Core 有哪些替代方案?我可以阅读哪些好的在线文档或教程?我自己做了一些调查,许多教程都有非常复杂的创建种子数据的方法,我想知道是否有更标准的方法来做到这一点。

【问题讨论】:

  • 对于测试,您可以在应用程序启动时运行您自己的等效于 EF 6 的种子方法。使用 if(!context.Users.Any()) { ... } 之类的简单检查不要将相同的数据播种两次。

标签: c# entity-framework seeding


【解决方案1】:

使用 InMemory 数据库提供程序进行测试。 MS Docs

对于使用 TestInitializeAttributeAssemblyInitializeAttribute(如果您使用 mstest)的播种使用方法,您可以在其中使用数据播种数据库。

Article about testing with InMemory provider

【讨论】:

    猜你喜欢
    • 2017-06-23
    • 2015-04-11
    • 2019-09-12
    • 2020-12-13
    • 2017-09-26
    • 2020-08-30
    • 2020-12-16
    • 2021-04-26
    • 2021-05-17
    相关资源
    最近更新 更多