迁移到EF Core 2.0(从1.1)后,我的集成测试失败,因为DI创建的上下文为空。
我在WebApp.Tests程序集中启动:
services.AddDbContext<MyContext>(x => x.UseInMemoryDatabase(nameof(MyContext))
.ConfigureWarnings(z => z.Ignore(InMemoryEventId.TransactionIgnoredWarning))
.EnableSensitiveDataLogging());
我的IntegartionTestFixture类包含
var builder = new WebHostBuilder()
.UseContentRoot(contentRoot)
.ConfigureServices(OverrideServices)
.UseEnvironment("Development")
.UseStartup(typeof(WebApp.Tests.Startup))
;
_server = new TestServer(builder);
Client = _server.CreateClient();
我的测试以
开始var options = new DbContextOptionsBuilder()
.UseInMemoryDatabase(nameof(MyContext))
.Options;
using (var db = new MyContext(options))
{
db.SeedSingleUserLogin();
db.SaveChanges();
}
稍后我调用webapi,注入我的控制器的dbcontext为空。