2017-05-04 66 views
1

以並行方式運行測試,您不能按照它的方式使用FeatureContext(例如:FeatureContext.Current.FeatureInfo.Title)。 所以,你必須注入它像文檔指出http://specflow.org/documentation/Parallel-Execution/Specflow - 如何在BeforeFeature中使用FeatureContext進行並行測試

但是,如果我用FeatureContext在[BeforeFeature]掛鉤它必須是按照靜態方法是什麼:https://github.com/techtalk/SpecFlow/wiki/Hooks

爲了舉例說明我有這個Hook,當並行運行時工作正常:

[BeforeFeature] 
internal static void BeforeFeature() 
{ 
// Some code here 
string title = FeatureContext.Current.FeatureInfo.Title; 
// More code here 
} 

我該如何解決這個問題?

謝謝!

回答

2

With SpecFlow < = 2.1這是不可能的。 使用SpecFlow 2.2我們增加了獲取FeatureContext參數的功能。請參閱此處的公關https://github.com/techtalk/SpecFlow/pull/779

要使用此功能,您必須使用CI提要中的版本。預計將在下週進行預售。

+0

謝謝!這非常有幫助! – Icaroto

+0

嗨安德烈亞斯,對於*場景*也是有意義的,也就是ScenarioContext注入Before/AfterScenario掛鉤嗎?我們還可以如何訪問ScenarioContext在並行執行上下文中的TestError?請注意:基於管線的方法不會使測試執行引擎更容易開發/維護和使用嗎? –

+0

@VincentSels:你可以通過上下文注入獲得ScenarioContext(見最後的http://specflow.org/documentation/ScenarioContext/)。這已經在SpecFlow 1.9中起作用,並且可以用於並行運行。但爲了獲得它也作爲鉤的參數是一個不錯的主意。請在https://github.com/techtalk/SpecFlow上提出問題 –

相關問題