所以我使用SpecFlow和NUnit来开发使用Selenium的Web应用程序的端到端验收测试。我们尝试衡量失败性质的一个方法是在回归测试失败时拍摄浏览器的屏幕截图。我目前正在通过将每个测试包装在try / catch块中,并在Selenium的catch中截取屏幕截图,然后重新抛出异常。这样可行,但它会使测试变得更加混乱和繁琐。
在任何测试失败之前,在调用任何拆解方法之前,NUnit或SpecFlow中是否有一种方法可以调用钩子?
答案 0 :(得分:3)
您可以使用ScenarioContext检测方案是否生成错误。
ScenarioContext.Current.TestError
如果不为null,则发生错误。您可以检查并使用它来确定是否截取屏幕截图。您可以在SpecFlow's documentation reference上看到示例。
你也可以将它变成AfterScenario Hook,这样你就不需要在任何地方都有try / catch。它只是检查最后的每个测试,看看是否发生了错误以及是否创建了屏幕截图。