MemberConditionAttribute Klasse

Definition

Führt bedingt eine Testklasse oder Testmethode basierend auf dem Wert einer oder staticBoolean mehrerer Member (Eigenschaft, Feld oder parameterloser Methode) aus, auf die bzw. die anhand des Type Membernamens verwiesen wird, oder ignoriert sie.

[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method, AllowMultiple=true, Inherited=false)]
public sealed class MemberConditionAttribute : Microsoft.VisualStudio.TestTools.UnitTesting.ConditionBaseAttribute
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method, AllowMultiple=true, Inherited=false)]
[System.Runtime.CompilerServices.Nullable(0)]
public sealed class MemberConditionAttribute : Microsoft.VisualStudio.TestTools.UnitTesting.ConditionBaseAttribute
[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method, AllowMultiple=true, Inherited=false)>]
type MemberConditionAttribute = class
    inherit ConditionBaseAttribute
[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method, AllowMultiple=true, Inherited=false)>]
[<System.Runtime.CompilerServices.Nullable(0)>]
type MemberConditionAttribute = class
    inherit ConditionBaseAttribute
Public NotInheritable Class MemberConditionAttribute
Inherits ConditionBaseAttribute
Vererbung
MemberConditionAttribute
Attribute

Hinweise

Wenn mehrere Membernamen an ein einzelnes Attribut übergeben werden, werden ihre Werte mit einem logischen AND kombiniert: Das Attribut IsConditionMet ist true nur, wenn jedes referenzierte Element ausgewertet wird true.

Jede MemberConditionAttribute Instanz bildet eine eigene GroupNameForm, sodass das Stapeln mehrerer MemberConditionAttribute Deklarationen für dasselbe Ziel mit einem logischen UND kombiniert wird und dem typischen [ConditionalFact] Verwendungsmuster in anderen Testframeworks entspricht.

Wenn das referenzierte Element nicht als publicstaticBoolean Eigenschaft, Feld oder parameterlose Methode gefunden werden kann oder (für Methoden) Parameter erforderlich ist, löst die Auswertung IsConditionMet eine .InvalidOperationException Dies wird als Testfehler anstelle eines automatischen Überspringens angezeigt, sodass Tippfehler und Umgestaltungen nicht versehentlich Tests deaktivieren.

Dieses Attribut wird nicht geerbt. Das Anwenden auf eine Basisklasse wirkt sich nicht auf abgeleitete Klassen aus.

[TestMethod]
[MemberCondition(typeof(Environment), nameof(Environment.Is64BitProcess))]
public void Only_Runs_On_64Bit() { }

[TestMethod]
[MemberCondition(typeof(PlatformDetection),
    nameof(PlatformDetection.IsNotBrowser),
    nameof(PlatformDetection.IsThreadingSupported))]
public void Requires_Threading_And_Not_Browser() { }

[TestMethod]
[MemberCondition(ConditionMode.Exclude, typeof(PlatformDetection), nameof(PlatformDetection.IsMonoRuntime))]
public void Does_Not_Run_On_Mono() { }

Konstruktoren

Name Beschreibung
MemberConditionAttribute(ConditionMode, Type, String, String[])

Initialisiert eine neue Instanz der MemberConditionAttribute-Klasse.

MemberConditionAttribute(ConditionMode, Type, String)

Initialisiert eine neue Instanz der MemberConditionAttribute-Klasse.

MemberConditionAttribute(Type, String, String[])

Initialisiert eine neue Instanz der MemberConditionAttribute Klasse mit Include Semantik: Der Test wird nur ausgeführt, wenn jedes referenzierte Element ausgewertet wird true.

MemberConditionAttribute(Type, String)

Initialisiert eine neue Instanz der MemberConditionAttribute Klasse mit Include Semantik: Der Test wird nur ausgeführt, wenn das referenzierte Element ausgewertet wird true.

Eigenschaften

Name Beschreibung
ConditionMemberNames

Ruft den Namen(en) der staticBoolean Member(n) (Eigenschaft, Feld oder parameterlose Methode) ConditionType für diese Bedingung ab. Mehrere Werte werden mit einem logischen UND kombiniert.

ConditionType

Ruft den Typ ab, der die Member deklariert, die static zum Auswerten der Bedingung verwendet werden.

GroupName

Ruft den Gruppennamen für dieses Attribut ab. Dies ist relevant, wenn mehrere Attribute vorhanden sind, die erben ConditionBaseAttribute . Die IsConditionMet Werte von Attributen in derselben Gruppe sind "OR" zusammen. Während der Wert aus verschiedenen Gruppen "AND" zusammen ist. Mit anderen Worten, ein Test wird ignoriert, wenn eine Gruppe alle Werte IsConditionMet als "false" aufweist.

IgnoreMessage

Dient zum Abrufen oder Festlegen der Ignorieren-Nachricht, die den Grund für die Ignorieren der Testmethode oder der Testklasse angibt.

(Geerbt von ConditionBaseAttribute)
IsConditionMet

Ruft einen Wert ab, der angibt, ob die Bedingung erfüllt ist. Die Implementierung dieser Eigenschaft sollte die Mode Eigenschaft nicht lesen.

Mode

Ruft den Bedingungsmodus ab.

(Geerbt von ConditionBaseAttribute)

Gilt für: