Search code examples
unit-testingmstestvs-unit-testing-framework

How to get test result status from MSTest?


In NUnit, I can get the test result from context.Result.State. If its NUnit.Framework.TestState.Success, then I know the test passed.

In MSTest, how do I get that info?

I saw context.Properties.Keys, but none of them speak of the status of the test result.


Solution

  • Use the TestContext.CurrentTestOutcome property in the TestCleanup method:

    [TestClass]
    public class UnitTest
    {
        private TestContext TestContext { get; set; }
    
        [TestCleanup]
        public void TestCleanup()
        {
            if (TestContext.CurrentTestOutcome == UnitTestOutcome.Passed)
                //do something
        } 
    
        [TestMethod]
        public void TestMethod()
        {
        }
    }