如何使用 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)
我有一个 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)