這聽起來像你只是不希望堆棧信息,當斷言失敗。許多人在嘗試調試時覺得這很有用,所以我可能會建議嘗試隱藏它,而不是擺脫它。
由於SpecFlow的所有功能都是將功能文件轉換爲測試(假設現在是nunit),爲了運行測試,您只需像往常一樣運行NUnit。如果您使用nunit-console.exe來執行,那麼開箱即用的SpecFlow會提供一個HTML報告生成器來執行您所要求的操作。這也適用於mstest,如果這就是你正在使用的。
它列出了所有測試,並將它們顯示爲紅色或綠色,並且有[show]/[hide]選項,只有您關心它時才允許顯示更多信息。您可以修改報告生成器以根據測試輸出執行任何操作,但我真的建議將它保留在那裏。
以下鏈接顯示您將如何設置。我們在CI中運行這個腳本,但是你可以寫一個批處理腳本,甚至通過C#來執行它。
https://github.com/techtalk/SpecFlow/wiki/Reporting
NUnit的亞軍
nunit-console.exe /labels /out=TestResult.txt /xml=TestResult.xml bin\Debug\BookShop.AcceptanceTests.dll
- 輸出文件有console.WriteLine資訊
- XML文件的測試結果
SpecFlow報告生成
specflow.exe nunitexecutionreport BookShop.AcceptanceTests.csproj /out:MyResult.html
行爲,你可以提供一個小樣本,具體在哪裏,你處理斷言失敗? – oleksii 2013-04-06 21:10:19
斷言有時會失敗,這意味着 - 當斷言失敗時,系統中存在一個錯誤。 例如:Assert.IsTrue(ServerResponseIsOk(),「服務器不正常,請檢查」) – Wasafa1 2013-04-07 06:25:37
不清楚哪個代碼會引發異常,您或SpecFlow /單元測試框架。如果這是你的代碼,那麼在異常細節中沒有什麼不好的。最終用戶會看到一個特定的測試失敗,可能只關心構建是綠色還是紅色。你作爲開發人員會關心細節的細節。 – oleksii 2013-04-07 09:01:17