RetryAttribute 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
此屬性用於在測試方法失敗時設定重試次數。
[System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=false, Inherited=false)]
public sealed class RetryAttribute : Microsoft.VisualStudio.TestTools.UnitTesting.RetryBaseAttribute
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method, AllowMultiple=false, Inherited=false)]
public sealed class RetryAttribute : Microsoft.VisualStudio.TestTools.UnitTesting.RetryBaseAttribute
[<System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=false, Inherited=false)>]
type RetryAttribute = class
inherit RetryBaseAttribute
[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method, AllowMultiple=false, Inherited=false)>]
type RetryAttribute = class
inherit RetryBaseAttribute
Public NotInheritable Class RetryAttribute
Inherits RetryBaseAttribute
- 繼承
- 屬性
備註
當該屬性套用到測試類別時,會作為該類別中所有宣告測試方法的預設值。 RetryAttribute直接放在測試方法上的值優先於類別層級的值(方法層級值完全取代類別層級值,無論其大小)。 該屬性不會被繼承:套用到基底測試類別時,不會套用到衍生的測試類別。
當至少有一次 Microsoft.VisualStudio.TestTools.UnitTesting.TestResult 嘗試出現 Failed 或 Timeout 結果時,會進行重試。 重試一旦沒有失敗或無逾時結果就會停止。 對於資料驅動的測試(每次嘗試有多個結果),這是一條彙總規則: Inconclusive 結果(例如當測試呼叫 Assert.Inconclusive())只有當其兄弟測試未在同一次嘗試失敗或逾時,才會結束重試;否則嘗試仍會被重試。 最後一次嘗試的結果即為測試的最終結果。
此屬性會在一次測試主機執行中重試。 它獨立於 Microsoft.Testing.Extensions.Retry--retry-failed-tests 編排器,編排器會重新調用整個測試主機。 當兩者同時啟用時,嘗試次數會乘以增加(測試最多可執行 (MaxRetryAttempts + 1) x (--retry-failed-tests + 1) 多次),因此除非有意合併,否則避免合併。
建構函式
| 名稱 | Description |
|---|---|
| RetryAttribute(Int32) |
初始化類別的新實例 RetryAttribute ,使用指定的最大重試次數。 |
屬性
| 名稱 | Description |
|---|---|
| BackoffType |
取得或設定延遲退換類型。 |
| MaxRetryAttempts |
取得測試失敗時應進行的重試次數。 請注意,在考慮 RetryAttribute 之前,該測試已經執行過一次。 此特性決定了第一次正常運行後的最大重試次數。 |
| MillisecondsDelayBetweenRetries |
可以設定或設定重試間的延遲,單位是毫秒。 此延遲也會在第一次運行後及第一次重試嘗試前生效。 |
方法
| 名稱 | Description |
|---|---|
| ExecuteAsync(RetryContext) |
重新嘗試測試方法。 重試的細節則留給衍生類別。 請注意,該方法的第一次執行在呼叫前已經執行並失敗。 (繼承來源 RetryBaseAttribute) |