MSTEST0048: evitare le proprietà TestContext nei metodi di fixture

Property Value
ID della regola MSTEST0048
Title Evitare le proprietà TestContext nei metodi fixture
Category Usage
La modifica è dirompente o non dirompente Non-breaking
Abilitato per impostazione predefinita Yes
Gravità predefinita Warning
introdotta nella versione 3.10.0
È presente una correzione del codice No

Cause

Un metodo fixture (metodi con AssemblyInitializeAttribute, AssemblyCleanupAttribute, ClassInitializeAttribute, o ClassCleanupAttribute) accede alle proprietà con restrizioni TestContext.

A partire da MSTest.Analyzers 4.4, la regola segnala anche l'accesso costante dell'indicizzatore a una chiave con restrizioni, ad esempio testContext.Properties["TestName"]. Non segnala l'accesso dell'indicizzatore quando la chiave non è una stringa costante.

Descrizione della regola

Alcune TestContext proprietà non sono disponibili nei metodi fixture perché sono specifiche per l'esecuzione di singoli test:

Proprietà non disponibili nei metodi della classe e della configurazione dell'assembly.

  • TestData
  • TestDisplayName
  • DataRow
  • DataConnection
  • TestName

Proprietà non disponibili nei metodi della fixture a livello di assembly:

  • FullyQualifiedTestClassName

Come correggere le violazioni

Rimuovere l'utilizzo delle proprietà limitate TestContext dai metodi di fixture. Prendere in considerazione l'uso di approcci alternativi per l'inizializzazione e la pulizia di classi/assembly che non si basano su informazioni di contesto specifiche del test.

Quando eliminare gli avvisi

Non eliminare gli avvisi da questa regola. L'accesso a queste proprietà nei metodi di fixture può causare errori imprevisti o di runtime.