Taylor Momsen
Taylor Momsen

Reputation: 61

How to get the test name from a TestCleanup method?

I notice that a [TestCleanup] method cannot take a TestContext parameter. How then I am supposed to know which test is being cleanup up?

Upvotes: 6

Views: 1992

Answers (1)

John Koerner
John Koerner

Reputation: 38077

You can have a public property named TestContext on your class and that will be set by MSTest, for example :

[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);
    }
}

Upvotes: 6

Related Questions