MSTEST0010: o método ClassInitialize deve ter um layout válido
Propriedade | Valor |
---|---|
ID da regra | MSTEST0010 |
Título | O método ClassInitialize deve ter um layout válido |
Categoria | Uso |
Correção interruptiva ou sem interrupção | Sem interrupção |
Habilitado por padrão | Sim |
Gravidade padrão | Aviso |
Introduzido na versão | 3.3.0 |
Há uma correção de código | Sim |
Causa
Um método marcado com [ClassInitialize]
deve ter um layout válido.
Descrição da regra
Os métodos marcados com [ClassInitialize]
devem seguir o seguinte layout para serem válidos:
- não pode ser declarado em uma classe genérica sem que o modo
InheritanceBehavior
esteja definido - deve ser
public
- deve ser
static
- não deve ser
async void
- não deve ser um método especial (finalizador, operador...).
- não deve ser genérico
- deve receber um parâmetro do tipo
TestContext
- o tipo de retorno deve ser
void
,Task
ouValueTask
- O parâmetro de atributo
InheritanceBehavior.BeforeEachDerivedClass
deve ser especificado se a classe forabstract
. - O parâmetro de atributo
InheritanceBehavior.BeforeEachDerivedClass
não deve ser especificado se a classe forsealed
.
O tipo que declara esses métodos também deve respeitar as seguintes regras:
- O tipo deve ser um
class
. - O
class
deve serpublic
ouinternal
(se o projeto de teste estiver usando o atributo[DiscoverInternals]
). - O
class
não deveria serstatic
. - Se
class
forsealed
, deverá ser marcado com[TestClass]
(ou um atributo derivado).
- a classe não deve ser genérica
Como corrigir violações
Certifique-se de que o método corresponda ao layout descrito acima.
Quando suprimir avisos
Não suprima um aviso nessa regra. Se você ignorar esta regra, as instâncias sinalizadas serão ignoradas ou resultarão em um erro de runtime.
Colaborar conosco no GitHub
A fonte deste conteúdo pode ser encontrada no GitHub, onde você também pode criar e revisar problemas e solicitações de pull. Para obter mais informações, confira o nosso guia para colaboradores.