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.