Condividi tramite


Analisi codice MSTest

Le regole di analisi MSTest ("MSTESTxxxx") ispezionano il codice C# o Visual Basic per individuare problemi di sicurezza, prestazioni, progettazione e di altro tipo.

Suggerimento

Se si usa Visual Studio, molte regole dell'analizzatore hanno associate correzioni del codice che è possibile applicare per risolvere il problema. Le correzioni del codice sono visualizzate nel menu dell'icona a forma di lampadina.

Le regole sono organizzate in categorie come l'utilizzo delle prestazioni...

A partire da MSTest.TestFramework 3.7, il pacchetto NuGet MSTest.Analyzers è una dipendenza del framework. Per le versioni precedenti, è necessario usare il metapacchetto MSTest o aggiungere un riferimento al pacchetto MSTest.Analyzers esplicitamente.

MSTestAnalysisMode

A partire da MSTest 3.8, è disponibile una proprietà MSBuild denominata MSTestAnalysisMode per determinare quali analizzatori sono abilitati in base alla gravità.

Suggerimento

Per vedere quali regole sono abilitate in base alla gravità per ogni modalità, è possibile passare al pacchetto della versione di interesse nella cache NuGet, individuare la directory globalconfigs e aprire il file .globalconfig corrispondente alla modalità di analisi. Per altre informazioni sulla ricerca della directory della cache NuGet, vedere Gestione dei pacchetti globali, della cache e delle cartelle temporanee. Da tale directory individuare mstest.analyzers directory, quindi la versione (3.8 e successive), quindi globalconfigs. In alternativa, è possibile scaricare il pacchetto NuGet della versione di interesse da nuget.org e visualizzarlo in Esplora pacchetti NuGet (app di Windows) o visualizzarlo direttamente nella versione dell'app Web di Esplora pacchetti NuGet.

I valori disponibili per questa proprietà:

None

Questo valore imposta tutti gli analizzatori su none gravità, disabilitandoli tutti. È quindi possibile abilitare singoli analizzatori usando .editorconfig o .globalconfig file.

Default

Questa impostazione segue il comportamento documentato predefinito per ogni regola.

  • Le regole abilitate per impostazione predefinita useranno la gravità predefinita.
  • Le regole che sono disabilitate per impostazione predefinita utilizzeranno la gravità none.

Nota

Le regole abilitate per impostazione predefinita come avvisi sono violazioni che dovrebbero causare problemi in fase di esecuzione.

Questa è la modalità che ci aspettiamo che la maggior parte degli sviluppatori usi. Le regole abilitate per impostazione predefinita con gravità Info (suggestion) vengono elevate ad avvertimenti. Inoltre, alcune regole potrebbero diventare errori nelle modalità Recommended e All. Ad esempio, MSTEST0003: i metodi di test devono avere un layout valido. è considerato un errore nelle modalità Recommended e All.

All

Questa modalità è più aggressiva di Recommended. Tutte le regole vengono abilitate come avvisi. Come indicato per la modalità Recommended, alcune regole potrebbero essere classificate come errori nelle modalità Recommended e All. Ad esempio, MSTEST0003: i metodi di test devono avere un layout valido. è considerato un errore nelle modalità Recommended e All.

Categorie

Regole di progettazione

Le regole di design aiutano a creare e mantenere gruppi di test che aderiscono a una progettazione corretta e alle buone pratiche.

Regole di prestazioni

Le regole di performance supportano i test ad alte prestazioni.

Regole di soppressione

Le regole di soppressione supportano la soppressione della diagnostica da altre regole.

Regole di utilizzo

Regole di utilizzo supportano l'uso corretto di MSTest.

MSTESTEXP

Diverse API di MSTest sono decorate con il ExperimentalAttribute. Questo attributo indica che l'API è sperimentale e può essere rimossa o modificata nelle versioni future di MSTest. L'attributo viene usato per identificare le API che non sono ancora stabili e potrebbero non essere adatte per l'uso in produzione.

La diagnostica MSTESTEXP avvisa l'utente di usare un'API sperimentale nel codice. Per sopprimere questa diagnostica con il SuppressMessageAttribute, aggiungere il seguente codice al progetto:

using System.Diagnostics.CodeAnalysis;

[assembly: SuppressMessage("MSTESTEXP", "Justification")]

In alternativa, è possibile eliminare questa diagnostica con direttiva del preprocessore aggiungendo il codice seguente al progetto:

#pragma warning disable MSTESTEXP
        // API that is causing the warning.
#pragma warning restore MSTESTEXP