在下面的代码片段中,我使用ClassInitialize和Cleanup将事务包装在我正在运行的一系列测试中。该代码在我的GUI测试运行器中工作,但在mstest命令行中失败,出现以下错误。我可以强制类清理并初始化为同一个线程吗?不希望使用测试初始化和清理,因为它会显着减慢测试速度。
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()
答案 0 :(得分:0)
我建议你删除static modifier
private TransactionScope _trans;