我已經在WPF C#應用程序中使用SpecFlow而最近開始,對於UI測試。我有一個運行一系列鏈接場景的功能,我想知道是否有一種方法可以在某個場景失敗時停止執行功能。我知道如果調試可以停止執行,但我想知道是否可以在運行時停止執行。我一直在考慮試圖在[AfterScenario()]方法中停止它。這可以做到嗎?SpecFlow停止功能的情況下,一個方案失敗
[AfterScenario()]
public static void After()
{
if (TestContext.CurrentContext.Result.State != TestState.Success)
{
//stop feature from going to the next scenario
}
}
這讓我聞到了味道。這聽起來像你有一個順序依賴於你的方案,這可能最終導致你的問題。你可以做的是一起走的告誡東西[沿着這些線路(http://stackoverflow.com/questions/24928270/is-it-valid-to-have-specflow-features-depending-on-other-features)與這個問題和答案。我相信你會更好地讓每個場景獨立。 – 2014-09-03 14:06:36
如果您的測試是由其他測試運行者運行的,該怎麼辦? Specrun和ncruch都將並行運行測試,這將破壞您的情況。構建服務器上使用的運行器也可能以不同的順序運行它們。例如Team City似乎按字母順序運行測試。 – 2014-09-03 22:06:05
你能舉一個例子說明你如何將這些場景連接在一起?這可能有助於理解你的用例。 – 2014-09-03 22:07:58