В настоящее время у меня есть набор тестов с использованием Nunit и C # с Selenium WebDriver с использованием утверждений, есть ли способ запустить функцию только в случае сбоя утверждения. Обычно это продолжается до разборки, а затем переходит к следующему тесту, однако мне нужно сбросить определенные параметры теста, если предыдущий тест не прошел. Как лучше всего это сделать?

Ответы (1)

Вы можете расширить TestActionAttribute, чтобы справиться с этим. В переопределении AfterTest () вы можете проверить TestContext.CurrentContext.Result.Status == TestStatus.Failed и обработать его соответствующим образом. Например,

public class ClassTest
{
    [Test]
    [OnFailure] // << your custom attribute here
    public void MyTest()
    {
        Assert.Fail("test failed");
    }
}

[AttributeUsage(AttributeTargets.Method)]
public class OnFailureAttribute : TestActionAttribute
{
    public override void AfterTest(TestDetails testDetails)
    {
        if(TestContext.CurrentContext.Result.Status == TestStatus.Failed)
        {
            // TODO: your error handling
            Console.WriteLine(testDetails.FullName + " failed");
        }
    }
}

2022 WebDevInsider