Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
| 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 | Sí |
| 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.