Настал момент, когда при написании автоматических тестов (C# + NUnit + Selenium Webdriver) у меня возникла необходимость получать результат прохождения теста, после его выполнения. Т.е. мне надо было узнать успешно тест прошёл, с ошибкой или игнорировалось выполнение, а также если тест завершился с ошибкой, то какая ошибка.

Эту информацию можно использовать для любых целей. В моём случае эта информация используется, для формирования отчёта, который я генерирую самостоятельно в удобном для меня виде.

В итоге потратив энное количество времени я нашёл решение, которое сейчас и разберу.

У нас имеется структура тестов:

using System;
using NUnit.Framework;
using NUnit.Framework.Interfaces;
using System.Collections.Generic;

namespace WebTest
{
    [TestFixture()]
    public class TestRegress
    {
        public static Thread potok1;

        [OneTimeSetUp] 
        public void TestFixtureSetUp()
        {}

        [OneTimeTearDown] 
        public void TestFixtureTearDown()
        {}

        [SetUp] 
        public void SetUp()
        {}

        [TearDown] 
        public void TearDown()
        {}

        [Test]
        public void DEBUG()
        {}
    }
}

После выполнения каждого теста нам можно что-либо делать и сюда мы и поместим код, который будет получать результат прохождения каждого теста и сообщение об ошибке:

[TearDown] 
public void TearDown()
{

	if (TestContext.CurrentContext.Result.Outcome == ResultState.Ignored) 
	{

	}
	if ((TestContext.CurrentContext.Result.Outcome == ResultState.Failure) || (TestContext.CurrentContext.Result.Outcome == ResultState.Error)) 
	{
		string error = TestContext.CurrentContext.Result.Message + "\n" + TestContext.CurrentContext.Result.StackTrace; 

	}
	if (TestContext.CurrentContext.Result.Outcome == ResultState.Success) 
	{

	}
}

Получив данные прохождения теста, вы можете уже делать что угодно. Следующим тестом можно проверить все три состояния (поочерёдно раскомментируем требуемую строку):

[Test]
public void DEBUG()
{


	


	


}

На текущий момент этот код работает с NUnit 3.8.1