如何从TestCleanup方法获取测试名称?

Tay*_*sen 6 .net c# unit-testing mstest visual-studio

我注意到一个[TestCleanup]方法不能带TestContext参数。那我应该怎么知道正在清理哪个测试?

Joh*_*ner 5

您可以TestContext在类上命名一个公共属性,该属性将由MSTest设置,例如:

[TestClass]
public class UnitTest1
{
    public TestContext TestContext { get; set; }
    [TestMethod]
    public void TestMethod1()
    {
        var x = 2;
        var y = 1 + 1;
        Assert.AreEqual(x, y);
    }

    [TestMethod]
    public void TestMethod2()
    {
        Assert.AreEqual(true, true);
    }

    [TestCleanup]
    public void TestCleanup()
    {
        Debug.WriteLine(TestContext.TestName);
    }
}
Run Code Online (Sandbox Code Playgroud)