在下面的代碼片段中,我使用ClassInitialize和Cleanup來圍繞我正在運行的一系列測試進行事務處理。該代碼在我的GUI測試運行器中工作,但在mstest命令行中出現以下錯誤。我能夠強制類清理並初始化在同一個線程中?不希望使用測試初始化和清理,因爲它會顯着降低測試速度。我可以強制ClassCleanup在與ClassInitialize相同的線程中執行嗎?
CODE
private static TransactionScope _trans;
[ClassInitialize]
public static void ClassInitialize(TestContext context)
{
_trans = new TransactionScope();
//...do work
}
[ClassCleanup]
public static void ClassCleanup()
{
_trans.Dispose();
}
錯誤
運行有以下問題(補):類清理方法 GeoMetExplainSheetTests.TestCleanup失敗。錯誤消息: System.InvalidOperationException:一個TransactionScope必須創建它在同一線程上設置 ..
堆棧跟蹤:
在System.Transactions.TransactionScope.Dispose()
發現這篇文章強調了在單獨的線程上調用這些方法。嗯..無賴...希望你們中的一個人對我有答案!? http://blogs.msdn.com/b/nnaderi/archive/2007/02/17/explaining-execution-order.aspx – TimmyD 2013-03-27 15:01:17