Lenguaje

TestFilterProviderAttribute<TFilter> Clase

Definición

Variante fuertemente tipada de TestFilterProviderAttribute que se registra TFilter como la ITestFilter implementación que invoca el adaptador de MSTest para cada prueba que está a punto de ejecutarse.

[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

Parámetros de tipo

TFilter

Implementación ITestFilter para crear instancias e invocar para cada prueba en el ensamblado de prueba de consumo.

Herencia
TestFilterProviderAttribute<TFilter>
Atributos

Ejemplos

[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;
}

Comentarios

Esta es la forma segura para tipos de [assembly: TestFilterProvider(typeof(MyFilter))]. Las restricciones genéricas hacen que el compilador aplique, en tiempo de compilación, lo que el atributo no genérico solo puede validar en tiempo de ejecución: TFilter debe implementar ITestFilter y exponer un constructor público sin parámetros.

Todo lo demás se comporta exactamente igual TestFilterProviderAttributeque , incluida la regla "al menos uno por ensamblado de prueba", los dos atributos cuentan como uno y el mismo registro, por lo que aplicar ambos a un único ensamblado es un error. Son tipos distintos, por lo que el compilador no notifica que como atributo duplicado; MSTEST0081 sí.

Este atributo solo está disponible cuando el destino .NET. En .NET Framework, use el TestFilterProviderAttribute. Un proyecto de prueba que ambos destinos múltiples pueden seleccionar el formulario correcto con #if NET:

#if NET
[assembly: TestFilterProvider<MyFilter>]
#else
[assembly: TestFilterProvider(typeof(MyFilter))]
#endif

Constructores

Nombre Description
TestFilterProviderAttribute<TFilter>()

Variante fuertemente tipada de TestFilterProviderAttribute que se registra TFilter como la ITestFilter implementación que invoca el adaptador de MSTest para cada prueba que está a punto de ejecutarse.

Se aplica a