在下面的代码片段中,我使用 ClassInitialize 和 Cleanup 围绕我正在运行的一系列测试包装事务。该代码在我的 GUI 测试运行程序中运行,但在 mstest 命令行中失败并出现以下错误。我可以强制类清理和初始化在同一个线程中吗?最好不要使用测试初始化和清理,因为它会显着减慢测试速度。
代码
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()