Lingua

MSTEST0085: '[TestClass]' non deve essere applicato alle classi astratte

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.

Vedere anche