TestFilterProviderAttribute<TFilter> Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Silnie typizowane warianty TestFilterProviderAttributeTFilter tego rejestrują się jako implementacja ITestFilter karty MSTest wywołuje dla każdego testu, który ma zostać uruchomiony.
[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
Parametry typu
- TFilter
Implementacja ITestFilter do tworzenia wystąpień i wywoływania dla każdego testu w zestawie testowym zużywających.
- Dziedziczenie
-
TestFilterProviderAttribute<TFilter>
- Atrybuty
Przykłady
[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;
}
Uwagi
Jest to bezpieczna dla typu forma [assembly: TestFilterProvider(typeof(MyFilter))]. Ograniczenia ogólne sprawiają, że kompilator wymusza w czasie kompilacji to, co atrybut niegeneryczny może weryfikować tylko w czasie wykonywania: TFilter musi implementować ITestFilter i uwidaczniać publiczny konstruktor bez parametrów.
Wszystko inne zachowuje się dokładnie tak jak TestFilterProviderAttribute, w tym regułę "co najwyżej jeden na zestaw testowy" — dwa atrybuty są liczone jako jedna i ta sama rejestracja, więc zastosowanie obu do pojedynczego zestawu jest błędem. Są to odrębne typy, więc kompilator nie zgłasza tego jako zduplikowanego atrybutu; MSTEST0081 nie.
Ten atrybut jest dostępny tylko podczas określania wartości docelowej .NET. W .NET Framework użyj nieogólne TestFilterProviderAttribute. Projekt testowy, który obsługuje wiele obiektów docelowych, może wybrać odpowiedni formularz za pomocą polecenia #if NET:
#if NET
[assembly: TestFilterProvider<MyFilter>]
#else
[assembly: TestFilterProvider(typeof(MyFilter))]
#endif
Konstruktory
| Nazwa | Opis |
|---|---|
| TestFilterProviderAttribute<TFilter>() |
Silnie typizowane warianty TestFilterProviderAttribute |