在下面的代码片段中,我使用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