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 | 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.