Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
| Proprietà | valore |
|---|---|
| ID della regola | MSTEST0021 |
| Title | Preferire i metodi Dispose rispetto ai metodi TestCleanup |
| Categoria | Design |
| La correzione è incompatibile o retrocompatibile | senza interruzione |
| Abilitata per impostazione predefinita | No |
| Gravità predefinita | Info |
| Introdotto nella versione | 3.4.0 |
| È presente una correzione del codice | Sì, a partire dalla versione 3.7.0 |
Causa
Questa regola genera una segnalazione diagnostica quando è presente un metodo void [TestCleanup] o su qualsiasi [TestCleanup] se il framework di destinazione supporta l'interfaccia IAsyncDisposable.
Descrizione della regola
Per esprimere che un'istanza di una classe di test possiede risorse, usare il modello standard .NET IAsyncDisposable o IDisposable. MSTest richiama i metodi di rilascio nell'ambito della pulizia eseguita per ogni test, quindi il rilascio delle risorse può seguire lo stesso schema del resto del codice.
[TestCleanup] è anche supportato. Questa regola esprime una convenzione di consenso esplicito, non un requisito per l'esecuzione corretta del test.
MSTEST0022 offre la convenzione opposta; scegliere i criteri di pulizia adatti al progetto invece di abilitare entrambi.
Come correggere le violazioni
Sostituire [TestCleanup] il metodo in base a Dispose o al DisposeAsynccriterio.
Quando disattivare gli avvisi
Di solito non si desidera disattivare gli avvisi generati da questa regola se si è deciso di abilitarla esplicitamente.
Nota
Questa regola è su base volontaria. Non è abilitata anche quando si usa <MSTestAnalysisMode>All</MSTestAnalysisMode>. Per altre informazioni su MSTestAnalysisMode, vedere 'analisi del codice MSTest.
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 MSTEST0021
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0021
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.MSTEST0021.severity = none
Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.