[AfterStep]中的断言未设置ScenarioContext.Current.TestError

时间:2019-05-27 14:09:19

标签: .net selenium selenium-webdriver

[AfterStep]中,我未通过测试:

[AfterStep]
public void StopOnUnexpectedBrowserLogs()
{
    Assert.Fail("sth sth");
}

然后在[AfterScenario]中,我想在测试失败时采取行动:

[AfterScenario]
public void AfterScenario()
    if (ScenarioContext.Current.TestError != null)
    {
       DoSomething();
    }
}

在这种情况下,ScenarioContext.Current.TestErrors始终为null。如何强制使用[AfterStep]方法在此处分配内容?

1 个答案:

答案 0 :(得分:0)

我没有找到解决方案,而只是解决方法。我测试了用[AfterScenario]注释的方法中任何失败的断言都不会设置TestError属性。仅当TestError等带注释的方法中断言失败时,才分配Then,When,Given属性。 因此,我只是添加了一个简单的public bool SthBadHappened {get;set;}属性,用作我的TestError属性。