2017-03-23 72 views
0

我知道可以通過使用ScenarioStepContext.Current.StepInfo從specflow獲取步驟信息,但如果步驟位於Background塊內部,則不會返回。如何識別Specflow的後臺步驟?

有沒有辦法找出背景中的步驟或方案/場景大綱?

謝謝!

+0

什麼是你需要這些信息的原因是什麼? –

+0

嗨,對不起,應該提到這一點。我正在構建基於Specresults的報告,但事情是它顯示未定義的測試(沒有步驟,只有創建的場景)通過,因爲它將後臺步驟視爲場景的一部分。因此,基本上會發生這種情況: 如果方案沒有後臺步驟:它顯示爲掛起。 如果場景具有後臺步驟:它顯示爲已通過。 我想確定哪一步是後臺步驟,因此我可以將其從我的報告中刪除。是否有意義? – Icaroto

回答

1

目前無法在StepInfo中獲取此信息。

但是,有一種可能的(但很小的黑客)的方式來獲取此信息。您必須查看StackTrace並在那裏搜索名爲FeatureBackground()的方法。這是生成的代碼中來自背景的方法。

此代碼將做的工作:

var stackTrace = new System.Diagnostics.StackTrace(); 
var stackFrames = stackTrace.GetFrames(); 
bool isBackground = stackFrames.Where(x => x.GetMethod().Name == "FeatureBackground").Any(); 
+0

對不起,回覆遲了。完美工作!謝謝! – Icaroto

相關問題