在我們的應用程序測試套件中,我們有隨機測試失敗並出現此錯誤: Test'Some_Test_Name'超出了執行超時期限。解決SpecFlow ScenarioContext被丟棄的錯誤
當我們得到這樣的錯誤時,緊接着的測試也失敗並出現此錯誤: System.Threading.ThreadAbortException:線程被中止。 標準輸出消息: - >警告:以前的ScenarioContext未處理。 - >錯誤:線程正在中止。
我試過各種各樣的東西來解決這個問題,但我還沒有找到一種方法來訪問ScenarioContext來處理它應該是它的情況下。我試着從BeforeScenario中訪問它,但總是在錯誤發生之前發生。
我們解決了一些超時問題,但對於仍然存在的隨機問題,我希望能夠減少由ScenarioContext問題引起的故障,並從測試結果中刪除這些誤報。有任何想法嗎?
我幾乎說的。我明確指出的是,我想刪除假當發生這種情況時會出現這種情況,當你的測試運行時發生誤報時,這不是一種良性的行爲。 –
我很喜歡如果你不覺得這回答了你的問題,你可以試試。我只是解釋了這個警告是如何來自specflow代碼的。阻止警告的唯一方法是防止超時方案中的超時或停止正在阻止運行清理的代碼運行的方法中的異常。另一種方法是修復specflow代碼,以便在導致此問題的任何一種情況下清除場景。 –
如果你在specflow github頁面上提出了一個問題,我會試着看看可以做些什麼來解決它,但不能承諾任何時間尺度。 –