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 Info
Introdotto nella versione 3.2.0

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.