2012-08-09 36 views
2

由於我正在研究的項目越來越多,測試的數量也在增長。但是,就我而言,當場景的測試數量增加時,Specflow的穩定性似乎在下降。Specflow stability

讓我試着去清楚:例如,當我運行時,例如,Visual Studio 2010中的一些測試列表(包含5到10個場景)分開,所有場景都會傳遞。但是,當我一次運行所有測試列表(類似於70場景的總計)時,某些場景的失敗,在「單獨測試列表運行」中通過。當我立即再次運行'全面測試運行'時,不同場景的失敗,或者有時所有文件都會通過。換句話說,哪個場景的失敗總是隨機的。

是否有人熟悉這個問題,並且/或者當需要測試的場景的數量增加時,能夠啓發我關於Specflow的穩定性(看起來是什麼)?

回答

6

我不認爲這是一個specflow問題,我們跑了大約800測試,並通過每一次。我期望的是你的測試之間會產生串擾。 IE你的測試失敗,因爲他們共享你不期望的數據。

這是一個很常見的問題。

+0

你如何保持你的800多個串擾測試? – TimothyHeyden 2012-08-09 14:28:06

+1

幾乎所有奇怪的/意外的失敗都是因爲數據共享。我現在非常小心地確保將每個場景的數據放在ScenarioContext.Current包中(我傾向於使用包含屬性/方法的代碼,以使代碼更清晰並更易於理解),而不是使用字段和屬性等步驟定義類。 – SaxonMatt 2012-08-09 14:47:51

+1

@TimothyHeyden他們的關鍵是確保您將事情存儲在場景範圍的數據存儲中(如SaxonMatt所建議的scenarioContext.Current)。確保任何外部資源(數據庫/文件等)在測試開始時都處於已知狀態也很重要。使用[BeforeScenario]將您的測試設置爲已知狀態 – 2012-08-09 20:03:41