2
考慮以下幾點:爲什麼我的TransactionScopes在測試期間沒有得到尊重?
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()
調用,允許範圍「自然」處置,錯誤消失,但我仍然看到記錄在數據庫中累積。