如果在两个块中弹出错误,如何处理Given / When / Then语句和AfterScenario挂钩中的错误

时间:2016-04-04 19:23:42

标签: cucumber automated-tests bdd specflow gherkin

我有一个场景

@walk
Given a man is standing
When he starts moving
Then he covers 5 meters

[BeforeScenario("walk")]
public void BeforeWalkScenario()
{
       SetEnvironmentForWalk();
}


[AfterScenario("walk")]
public void AfetrWalkScenario()
{
       ClearWalk();
}

在我的测试中,执行失败时出现'When'语句和错误。此外,由于我也有AfterScenario,它也会在错误发生后执行。

不幸的是,我的测试在AfterScenario块中再次失败。因此,在测试报告中仅记录并报告AfterScenario错误。如何确保我的testresult报告还在When语句中显示失败的原因。

帮助将不胜感激。 BDD新手。谢谢!

1 个答案:

答案 0 :(得分:2)

在ScenarioContext.TestError中,您将从绑定中获取最后一个抛出的异常。 您可以在钩子中查看。

请参阅http://www.specflow.org/documentation/ScenarioContext/