MSTEST0010: il metodo ClassInitialize deve avere un layout valido
Proprietà | valore |
---|---|
ID regola | MSTEST0010 |
Title | Il metodo ClassInitialize deve avere un layout valido |
Categoria | Utilizzo |
La correzione causa un'interruzione o meno | Non causa un'interruzione |
Abilitata per impostazione predefinita | Sì |
Gravità predefinita | Avviso |
Introdotto nella versione | 3.3.0 |
È presente una correzione del codice | Sì |
Causa
Un metodo contrassegnato con [ClassInitialize]
deve avere un layout valido.
Descrizione regola
I metodi contrassegnati con [ClassInitialize]
devono seguire il layout seguente per essere validi:
- non può essere dichiarato in una classe generica senza che sia impostata la modalità
InheritanceBehavior
- deve essere
public
- deve essere
static
- non deve essere
async void
- non deve essere un metodo speciale (finalizzatore, operatore...).
- non deve essere generico
- deve accettare un parametro di tipo
TestContext
- il tipo restituito deve essere
void
,Task
oValueTask
- Il parametro dell'attributo
InheritanceBehavior.BeforeEachDerivedClass
deve essere specificato se la classe èabstract
. - Il parametro dell'attributo
InheritanceBehavior.BeforeEachDerivedClass
non deve essere specificato se la classe èsealed
.
Il tipo che dichiara questi metodi deve rispettare anche le regole seguenti:
- Il tipo deve essere
class
. -
class
deve esserepublic
ointernal
(se il progetto di test usa l'attributo[DiscoverInternals]
). -
class
non deve esserestatic
. - Se
class
èsealed
, deve essere contrassegnato con[TestClass]
(o un attributo derivato).
- la classe non deve essere generica
Come correggere le violazioni
Assicurarsi che il metodo corrisponda al layout descritto in precedenza.
Quando eliminare gli avvisi
Non escludere un avviso da questa regola. Se si ignora questa regola, le istanze contrassegnate verranno ignorate o genereranno un errore di runtime.
Eliminare un avviso
Se si vuole eliminare una singola violazione, aggiungere direttive del preprocessore al file di origine per disabilitare e quindi riabilitare la regola.
#pragma warning disable MSTEST0010
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0010
Per disabilitare la regola per un file, una cartella o un progetto, impostarne la gravità su none
nel file di configurazione .
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0010.severity = none
Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.