Compartilhar via


MSTEST0001: habilitar ou desabilitar explicitamente a paralelização de testes

Propriedade Valor
ID da regra MSTEST0001
Título Habilitar ou desabilitar explicitamente a paralelização de testes
Categoria Desempenho
Correção interruptiva ou sem interrupção Sem interrupção
Habilitado por padrão Sim
Severidade padrão Informações
Introduzido na versão 3.2.0
Há uma correção de código Não

Causa

O assembly não está marcado com [assembly: Parallelize] ou atributo [assembly: DoNotParallelize].

Descrição da regra

Por padrão, o MSTest executa testes no mesmo assembly sequencialmente, o que pode levar a limitações graves de desempenho. É recomendável habilitar o atributo de assembly [assembly: Parallelize] para executar testes em paralelo ou, se o assembly for conhecido por não ser paralelizável, para usar explicitamente o atributo de nível de assembly [assembly: DoNotParallelize].

A configuração padrão de [assembly: Parallelize] é equivalente a [assembly: Parallelize(Scope = ExecutionScope.ClassLevel)], o que significa que a paralelização será definida no nível da classe (não no nível do método) e usará o máximo de threads possível (dependendo da implementação interna).

Como corrigir violações

Para corrigir uma violação dessa regra, adicione o atributo [assembly: Parallelize] ou [assembly: DoNotParallelize]. Recomendamos usar [assembly: Parallelize(Scope = ExecutionScope.MethodLevel)] para ter a melhor paralelização.

Quando suprimir avisos

Não suprima um aviso nessa regra. Muitas bibliotecas podem se beneficiar de um enorme aumento de desempenho ao habilitar a paralelização. Quando o aplicativo de teste é projetado de uma forma que impede a paralelização, a definição explícita do atributo ajuda os novos desenvolvedores a entender as limitações da biblioteca.