Abr*_*ris 6 xunit entity-framework-core
有没有办法在内存数据库中创建一个单独的(隔离的)EF7实例?我在使用xUnit编写的单元测试中使用实体框架7中的内存数据库.我希望能够并行运行测试,但这实际上是不可能的,因为内存数据库中的所有测试似乎都是一样的.我想要的是每个测试都要在内存数据库中隔离,而不是与并行运行的其他测试共享.
在EF Core中,您可以为InMemory数据库上下文传递数据库名称.
就像是
var builder = new DbContextOptionsBuilder();
builder.UseInMemoryDatabase($"database{Guid.NewGuid()}");
Run Code Online (Sandbox Code Playgroud)
所以我还没有迁移到 EF7(仍在 EF6),但 DbContext 中的内部单例存在类似问题(我认为这是 DbCompiledModel 的缓存,我们的问题与运行时会有所不同的映射有关)时间,所以和你的不太一样)。无论如何,尝试为每个测试集合显式创建这些。
如果您没有获得任何值得付出努力的速度改进,您可以使用该[Collection("Memory Database Tests")]属性来确保使用相同内存数据库运行的测试不会并行运行(https://gist.github.com/bradwilson/8423477)。
| 归档时间: |
|
| 查看次数: |
804 次 |
| 最近记录: |