如何使用 xunit.runner.dnx 为 xunit 测试 运行 正确初始化 EF7

How to properly initialize EF7 for xunit tests run with xunit.runner.dnx

我有一个 DNX 单元测试程序集,我在其中测试使用 EF7 的代码。

在网络应用程序中,我有 Startup class,我可以在其中提供 ConfigureServices(IServiceCollection services) 方法并像这样初始化:

public void ConfigureServices(IServiceCollection services)
{
    services.AddEntityFramework()
        .AddSqlServer()
        .AddDbContext<RadarDbContext>(options =>
            options.UseSqlServer(
            Configuration["Data:DefaultConnection:ConnectionString"]));
}

DNX 下 xunit 测试 运行 的等价物 "hook" 在哪里?

Xunit 的 DNX 运行器从不调用 Startup.cs。您正在寻找的 "hook" 是 class 固定装置或您的测试 class 构造函数。 (参见 https://xunit.github.io/docs/shared-context.html

您选择如何从那里初始化 EF 取决于您。您可以使用依赖注入并遵循上面的 .AddDbContext() 模式,或者您可以直接初始化 DbContext。 (参见稍微过时的 https://github.com/aspnet/EntityFramework/wiki/Configuring-a-DbContext