我可以强制ClassCleanup在与ClassInitialize相同的线程中执行吗?

本文关键字:线程 执行 ClassCleanup 在与 ClassInitialize 我可以 | 更新日期: 2023-09-27 18:06:11

在下面的代码片段中,我使用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();
    }
误差

Run存在以下问题:类清理方法GeoMetExplainSheetTests。TestCleanup失败了。错误信息:系统。InvalidOperationException:必须处置TransactionScope

堆栈跟踪:

System.Transactions.TransactionScope.Dispose ()

我可以强制ClassCleanup在与ClassInitialize相同的线程中执行吗?

我建议你删除static modifier

private TransactionScope _trans;