TestFilterProviderAttribute<TFilter> Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stark typierte Variante, die TestFilterProviderAttributeTFilter als ITestFilter Implementierung registriert wird, die der MSTest-Adapter für jeden Test aufruft, der ausgeführt werden soll.
[System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false, Inherited=false)]
[System.Diagnostics.CodeAnalysis.Experimental("MSTESTEXP", UrlFormat="https://aka.ms/mstest/diagnostics#{0}")]
public sealed class TestFilterProviderAttribute<TFilter> : Attribute where TFilter : ITestFilter, new()
[<System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false, Inherited=false)>]
[<System.Diagnostics.CodeAnalysis.Experimental("MSTESTEXP", UrlFormat="https://aka.ms/mstest/diagnostics#{0}")>]
type TestFilterProviderAttribute<'Filter (requires 'Filter :> ITestFilter and 'Filter : (new : unit -> 'Filter))> = class
inherit Attribute
Public NotInheritable Class TestFilterProviderAttribute(Of TFilter)
Inherits Attribute
Typparameter
- TFilter
Die ITestFilter Implementierung zum Instanziieren und Aufrufen für jeden Test in der verwendeten Testassembly.
- Vererbung
-
TestFilterProviderAttribute<TFilter>
- Attribute
Beispiele
[assembly: TestFilterProvider<NightlyFilter>]
public sealed class NightlyFilter : ITestFilter
{
public TestFilterResult Filter(TestFilterContext context)
=> context.Categories.Contains("Nightly")
&& Environment.GetEnvironmentVariable("RUN_NIGHTLY") != "1"
? TestFilterResult.Skip("Set RUN_NIGHTLY=1 to run nightly tests.")
: TestFilterResult.Run;
}
Hinweise
Dies ist die typsichere Form von [assembly: TestFilterProvider(typeof(MyFilter))]. Die generischen Einschränkungen erzwingen den Compiler zur Buildzeit, was das nicht generische Attribut nur zur Laufzeit überprüfen kann: TFilter muss einen öffentlichen parameterlosen Konstruktor implementieren ITestFilter und verfügbar machen.
Alles andere verhält sich genau wie TestFilterProviderAttribute, einschließlich der Regel "höchstens eine pro Testassembly" – die beiden Attribute zählen als eine und dieselbe Registrierung, sodass die Anwendung auf eine einzelne Assembly ein Fehler ist. Sie sind unterschiedliche Typen, sodass der Compiler dies nicht als dupliziertes Attribut meldet; MSTEST0081 erledigt.
Dieses Attribut ist nur verfügbar, wenn sie auf .NET ausgerichtet ist. Verwenden Sie im .NET Framework das nicht generische TestFilterProviderAttribute. Ein Testprojekt, bei dem beide Ziele mit mehreren Zielen das richtige Formular auswählen können:#if NET
#if NET
[assembly: TestFilterProvider<MyFilter>]
#else
[assembly: TestFilterProvider(typeof(MyFilter))]
#endif
Konstruktoren
| Name | Beschreibung |
|---|---|
| TestFilterProviderAttribute<TFilter>() |
Stark typierte Variante, die TestFilterProviderAttribute |