Lingua

MSTEST0086: Rimuovere l'attributo del metodo di test ridondante

Proprietà Value
ID regola MSTEST0086
Titolo Rimuovere l'attributo ridondante del metodo di test
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 Sì, solo per C#

Cause

Un metodo di test dichiara un attributo MSTest il cui comportamento effettivo è già fornito dalla classe di test contenitore o da una classe di test di base.

Descrizione della regola

Gli attributi duplicati rendono più difficile comprendere e gestire i criteri di test efficaci. La regola segnala condizioni a livello di metodo, impostazioni di ripetizione dei tentativi, impostazioni di isolamento, metadati, elementi di distribuzione o dipendenze solo quando la configurazione a livello di classe fornisce già un comportamento equivalente o più restrittivo.

La regola riguarda OSCondition, ArchitectureConditionCICondition, DoNotParallelize, ResourceLock, Retry, Ignore, TestCategory, TestPropertyDeploymentItem, , e DependsOn.

Per OSCondition, ArchitectureCondition, CICondition, Retry, Ignore, e DependsOn, la regola segnala attributi ridondanti solo sui metodi dichiarati nelle classi di test sealed. Questi attributi a livello di classe non vengono ereditati, quindi la rimozione di un attributo a livello di metodo da una classe non sealed potrebbe modificare la modalità di esecuzione di un test ereditato in una classe derivata.

Per DoNotParallelize, ResourceLock, TestCategory, TestProperty, e DeploymentItem, la regola considera anche gli attributi sulle classi di base. La regola non segnala MemberCondition, ExecutableCondition o attributi personalizzati.

[TestClass, DoNotParallelize]
public class Tests
{
    [TestMethod, DoNotParallelize] // Violation
    public void Test() { }
}

Come correggere le violazioni

Rimuovere l'attributo a livello di metodo ridondante. Mantenere un attributo nel metodo quando cambia o restringe il comportamento a livello di classe.

[TestClass, DoNotParallelize]
public class Tests
{
    [TestMethod] public void Test() { }
}

Una correzione del codice C# rimuove l'attributo ridondante. Visual Basic segnala la diagnostica, ma non fornisce una correzione automatica.

Quando eliminare gli avvisi

Eliminare la regola quando l'attributo duplicato documenta intenzionalmente un criterio locale e tale valore della documentazione supera il costo di manutenzione.

Eliminare un avviso

#pragma warning disable MSTEST0086
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0086

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.MSTEST0086.severity = none

Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.

Vedere anche