Compartir vía


MSTEST0001: habilitar o deshabilitar explícitamente la paralelización de pruebas

Propiedad Value
Identificador de la regla MSTEST0001
Título Habilitar o deshabilitar explícitamente la paralelización de pruebas
Categoría Rendimiento
La corrección es problemática o no problemática Poco problemático
Habilitado de forma predeterminada
Gravedad predeterminada Advertencia a partir de la versión 4.0.0, Información previa
Introducido en la versión 3.2.0
Hay una corrección de código No

Causa

El ensamblado no está marcado con un atributo [assembly: Parallelize] o [assembly: DoNotParallelize].

Descripción de la regla

De manera predeterminada, MSTest ejecuta las pruebas dentro del mismo ensamblado secuencialmente, lo que puede provocar limitaciones graves de rendimiento. Se recomienda habilitar el atributo de ensamblado [assembly: Parallelize] para ejecutar pruebas paralelas o, si se sabe que el ensamblado no es paralelizable, usar explícitamente el atributo de nivel de ensamblado [assembly: DoNotParallelize].

La configuración predeterminada de [assembly: Parallelize] es equivalente a [assembly: Parallelize(Scope = ExecutionScope.ClassLevel)], lo que significa que la paralelización se establecerá en el nivel de clase (no en el nivel de método) y usará tantos subprocesos como sea posible (en función de la implementación interna).

Cómo corregir infracciones

Para corregir una infracción de esta regla, agregue el atributo [assembly: Parallelize] o [assembly: DoNotParallelize]. Se recomienda usar [assembly: Parallelize(Scope = ExecutionScope.MethodLevel)] para tener la mejor paralelización.

Cuándo suprimir las advertencias

No suprima las advertencias de esta regla. Muchas bibliotecas pueden beneficiarse de un aumento masivo del rendimiento al habilitar la paralelización. Cuando la aplicación de prueba está diseñada de forma que impida la paralelización, tener el atributo establecido explícitamente ayuda a los nuevos desarrolladores a comprender las limitaciones de la biblioteca.

Supresión de una advertencia

Dado que esta regla se notifica en el nivel de compilación y no en un archivo fuente .cs o .vb, no puede suprimir las infracciones de esta regla en línea o mediante un .editorconfig archivo.

Para deshabilitar la regla de un proyecto, agregue <NoWarn>$(NoWarn);MSTEST0001</NoWarn> al archivo del proyecto o al archivo Directory.Build.props.

Para controlar la gravedad de esta regla, puede hacerlo únicamente a través de un archivo .globalconfig. Para obtener más información, consulte Archivos de configuración.

is_global = true

dotnet_diagnostic.MSTEST0001.severity = none

Para obtener más información, consulte Procedimiento para suprimir advertencias de análisis de código.