首页 > 解决方案 > 如何在 TestCleanup 方法中获取 MSTest V2 TestContext 的实例?

问题描述

我正在将现有代码库迁移到 MSTest V2 并TestContextTestCleanup方法中遇到问题。

在 MSTest V1 中,TestContext该类是静态的,但在 V2 中,它是一个实例。我试图向该TestCleanup方法添加一个参数,但随后我收到此消息:

该方法必须是非静态的、公共的、不返回值且不应带任何参数。

最终,我想知道正在清理的测试的名称及其测试结果。如果无法获取TestContext,是否有任何其他方法可以在清理上下文中获取该信息?

标签: mstesttestcontext

解决方案


由于 TestCleanup 方法和 TestContext 不是静态的,因此您可以在 TestCleanup 方法中使用 TestContext 而无需任何参数。这是一个例子:

using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace MyNamespace.Tests
{
    [TestClass]
    public class MyTestClass
    {
        public TestContext TestContext { get; set; }

        [TestCleanup]
        public void MyTestCleanup()
        {
            TestContext.WriteLine($"Test Cleanup for {TestContext.TestName}");
        }

        [TestMethod]
        public void MyTestMethod1() { }

        [TestMethod]
        public void MyTestMethod2() { }
    }
}

推荐阅读