2011-08-09 65 views
6

我對網站UI自動化測試用例很少。NUnit - 重複測試用例3次,如果失敗

我想嘗試我的測試用例至少三次,如果第一次和第二次失敗。這樣,我想確保這個測試案例一直失敗。

請讓我知道,如果我們有任何選擇在NUnit中使用。我正在使用NUnit的C#。

+4

如果測試可以失敗只是有時,測試是錯誤的。單元測試失敗或成功。你在測試中有什麼樣的邏輯? – NOtherDev

+0

是否有可能混淆了單元測試的集成測試?如前所述,後者應該是一致的。 –

回答

2

nunit用來告訴測試結果有4個例外。它們是:TimeoutException,AssertException,SuccessException和IgnoreException。你可以在你的nunit測試函數中使用它們。我想你可以把你的測試代碼放在一個try-catch中,並捕獲nunit斷言異常兩次。但正如之前評論的那樣,我應該說,對間歇性失敗測試的需求是重新考慮的一個理由。

+3

我們正在開發Web UI自動化。很有可能某些時候頁面可能無法正常加載,或者某些網絡問題或一些暫時性問題。我們希望確保在兩個/三個週期內完成同樣的事情,以便人們可以花時間和調查。此外,這將克服虛驚。 – kumar

5

對於循環邏輯,計數失敗。斷言。(失敗== 0)繁榮完成。

不要這樣做。寫一個更好的測試,你可以證明是一致的。

+1

我們正在研究Web UI自動化。很有可能某些時候頁面可能無法正常加載,或者某些網絡問題或一些暫時性問題。我們希望確保在兩個/三個週期內完成同樣的事情,以便人們可以花時間和調查。此外,這將克服虛驚。 – kumar

+0

您正在尋找特定的例外嗎?是否存在導致問題的特定邊緣情況?編寫一個使用看似任意數量的「2到3」週期的測試聽起來不像是一個強大的,有用的或可驗證的測試。您可以編寫測試來強制執行不成功的頁面加載。我覺得這會給你錯誤的信心呢? –

15

您可以根據屬性repeat在nunit中添加新屬性並重建庫。這很簡單。

[Test] 
    [Repeat(25)] 
    public void MyTest(){ 
     // your test logic here 
    } 
5

從NUnit 3.0開始,有一個'重試'屬性,看起來好像它會完全符合庫馬爾的要求。

Retry Attribute