![](/img/trans.png)
[英]One method fails unit test only when all tests are run but passes when tested individually?
[英]Three Unit tests pass when run separately, only one passes when run together
我有三個測試, FunnyCarSteps.cs , CarLotMaxSteps.cs和CarTypeSteps.cs 。 當運行seperatley時,它們全部通過,但是一起運行時,僅CarLotMaxSteps通過。
CarTypeSteps.cs在第49行失敗,使用lambda方法,沒有可用的源錯誤。 FunnyCarSteps.cs在第19行失敗,索引超出范圍錯誤。
我是單元測試的新手,不了解發生了什么。
任何幫助是極大的贊賞。
由於Program.Main
是static
,因此您的CarList
可能也是靜態的。 NUnit並行運行測試,因此每個測試幾乎同時運行,並且每個清除列表並同時添加到列表中。
這就是為什么您的測試可以正常運行,但同時運行會失敗的原因。 一個啟動並開始測試,然后第二個出現並更改第一個測試正在使用的數據。
您需要從Program
除main之外的所有內容中刪除static。 理想情況下,您應該將所有汽車清單代碼重構為新的非靜態類。 程序用於運行您的程序,它與汽車無關。 您應該在Main中創建CarLot(或任何類)類並執行它,而不是向Program添加屬性。
另一個選擇是將屬性[Parallelizable(ParallelScope.None)]
到每個測試類。 這將導致它們一次運行一次。 這將解決您的測試問題,但不能解決以下事實:除了簡單的練習之外,您的代碼是不正確的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.