【发布时间】:2014-08-27 16:23:17
【问题描述】:
鉴于以下情况:
public class TestEnvironment
{
private static TransactionScope scope;
[AssemblyInitialize]
public static void Init(TestContext context)
{
/* establish database connection, create Session fake, create Items fake, etc. */
scope = new TransactionScope();
}
[AssemblyCleanup]
public static void Cleanup()
{
scope.Dispose();
}
}
我看到数据库中出现了测试数据。我在测试输出中看到以下错误:
必须在创建的同一线程中处理 TransactionScope 它。
这仅在运行所有测试时发生。当任何给定的测试单独运行时,都没有问题。
如果我删除 scope.Dispose() 调用,允许“自然”处置范围,错误就会消失,但我仍然看到记录在数据库中累积。
【问题讨论】:
标签: c# transactions integration-testing transactionscope