語言

RetryAttribute 類別

定義

此屬性用於在測試方法失敗時設定重試次數。

[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
屬性

備註

當該屬性套用到測試類別時,會作為該類別中所有宣告測試方法的預設值。 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)

適用於