TestFilterProviderAttribute Classe

Definição

Registra uma implementação fornecida pelo ITestFilter usuário que o adaptador MSTest invoca para cada teste que está prestes a ser executado, depois que qualquer filtro de linha de comando (--filter, seleção do Gerenciador de Testes etc.) tiver sido aplicado.

[System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false, Inherited=false)]
public sealed class TestFilterProviderAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false, Inherited=false)]
[System.Diagnostics.CodeAnalysis.Experimental("MSTESTEXP", UrlFormat="https://aka.ms/mstest/diagnostics#{0}")]
[System.Runtime.CompilerServices.Nullable(0)]
public sealed class TestFilterProviderAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false, Inherited=false)>]
type TestFilterProviderAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false, Inherited=false)>]
[<System.Diagnostics.CodeAnalysis.Experimental("MSTESTEXP", UrlFormat="https://aka.ms/mstest/diagnostics#{0}")>]
[<System.Runtime.CompilerServices.Nullable(0)>]
type TestFilterProviderAttribute = class
    inherit Attribute
Public NotInheritable Class TestFilterProviderAttribute
Inherits Attribute
Herança
TestFilterProviderAttribute
Atributos

Exemplos

[assembly: TestFilterProvider(typeof(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;
}

Comentários

Aplique esse atributo no nível do assembly no próprio assembly de teste. No máximo um TestFilterProviderAttribute pode ser aplicado por assembly de teste; isso é intencional para que a ordenação de filtro não faça parte da API pública. Se forem necessárias várias estratégias de filtragem, componha-as explicitamente dentro de uma única ITestFilter implementação.

O tipo de filtro deve ser uma classe não genérica com um construtor público sem parâmetros ITestFilterque implementa. Uma única instância é criada por assembly de teste por execução de teste e reutilizado para cada teste desse assembly.

O filtro é executado antes que o tipo de teste seja carregado, antes [AssemblyInitialize], antes [ClassInitialize]e antes que o construtor de teste seja invocado, portanto, descartar ou ignorar um teste ITestFilter evita o pagamento de qualquer um desses custos.

Construtores

Nome Description
TestFilterProviderAttribute(Type)

Inicializa uma nova instância da classe TestFilterProviderAttribute.

Propriedades

Nome Description
FilterType

Obtém a ITestFilter implementação registrada por esse atributo.

Aplica-se a