Condividi tramite


MSTEST0001: abilitare o disabilitare in modo esplicito la parallelizzazione dei test

Proprietà valore
ID regola MSTEST0001
Title Abilitare o disabilitare in modo esplicito la parallelizzazione dei test
Categoria Prestazioni
La correzione causa un'interruzione o meno Non causa un'interruzione
Abilitata per impostazione predefinita
Gravità predefinita Avviso a partire dalla versione 4.0.0, Informazioni prima
Introdotto nella versione 3.2.0
È presente una correzione del codice No

Causa

L'assembly non è contrassegnato con l'attributo [assembly: Parallelize] o [assembly: DoNotParallelize].

Descrizione regola

Per impostazione predefinita, MSTest esegue i test all'interno dello stesso assembly in sequenza e ciò può causare gravi limitazioni delle prestazioni. È consigliabile abilitare l'attributo dell'assembly [assembly: Parallelize] per eseguire i test in parallelo oppure, se l'assembly non è parallelizzabile, usare in modo esplicito l'attributo a livello di assembly [assembly: DoNotParallelize].

La configurazione predefinita di [assembly: Parallelize] equivale a [assembly: Parallelize(Scope = ExecutionScope.ClassLevel)], ovvero la parallelizzazione verrà impostata a livello di classe (non a livello di metodo) e userà il maggior numero possibile di thread (a seconda dell'implementazione interna).

Come correggere le violazioni

Per correggere una violazione di questa regola, aggiungere l'attributo [assembly: Parallelize] o [assembly: DoNotParallelize]. È consigliabile usare [assembly: Parallelize(Scope = ExecutionScope.MethodLevel)] per ottenere una migliore parallelizzazione.

Quando eliminare gli avvisi

Non escludere un avviso da questa regola. Molte librerie possono sperimentare un notevole aumento delle prestazioni abilitando la parallelizzazione. Quando l'applicazione di test è progettata in modo da impedire la parallelizzazione, l'impostazione esplicita dell'attributo consente ai nuovi sviluppatori di comprendere le limitazioni della libreria.

Eliminare un avviso

Poiché questa regola viene segnalata a livello di compilazione e non in un file di origine .cs o .vb , non è possibile eliminare le violazioni a questa regola inline o tramite un .editorconfig file.

Per disabilitare la regola per un progetto, aggiungere <NoWarn>$(NoWarn);MSTEST0001</NoWarn> al file di progetto o il file Directory.Build.props.

Per controllare la gravità di questa regola, è possibile farlo solo tramite un .globalconfig file. Per altre informazioni, vedere File di configurazione.

is_global = true

dotnet_diagnostic.MSTEST0001.severity = none

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