1

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

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

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

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

4

1 回答 1

1

由于 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() { }
    }
}
于 2019-05-15T10:04:53.497 回答