Lingua
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à | Value |
|---|---|
| ID regola | MSTEST0085 |
| Titolo |
[TestClass] non deve essere applicato alle classi astratte |
| Category | Usage |
| La modifica è dirompente o non dirompente | Non rompente |
| Abilitato per impostazione predefinita | Sì |
| Gravità predefinita | Informazioni |
| introdotta nella versione | 4.5.0 |
| È presente una correzione del codice | No |
Cause
Una classe astratta dichiara TestClassAttribute o un attributo che ne deriva.
Descrizione della regola
MSTest non può creare un'istanza o individuare una classe astratta come classe di test, quindi [TestClass] non ha alcun effetto sul tipo astratto. I metodi di test dichiarati in una classe base astratta vengono individuati tramite classi derivate concrete. Ogni classe concreta deve dichiarare il proprio [TestClass] attributo perché gli attributi della classe test non vengono ereditati.
[TestClass] // Violation
public abstract class SharedTests
{
[TestMethod] public void CommonTest() { }
}
Come correggere le violazioni
Rimuovere [TestClass] dalla classe base astratta e applicarla a ogni classe di test derivata concreta.
public abstract class SharedTests { }
[TestClass]
public sealed class ConcreteTests : SharedTests { }
Quando eliminare gli avvisi
Non eliminare questa regola. L'attributo nella classe astratta non rende individuabile la classe e le classi derivate concrete richiedono [TestClass]ancora .
Eliminare un avviso
#pragma warning disable MSTEST0085
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0085
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.MSTEST0085.severity = none
Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.