MSTEST0073: se prefiere una constante para la clave de recurso "[ResourceLock]".

Propiedad Value
Identificador de la regla MSTEST0073
Title Preferir una constante para la clave de recurso '[ResourceLock]'
Category Usage
La corrección es disruptiva o no disruptiva Non-breaking
Habilitado de forma predeterminada Yes
Gravedad predeterminada Información
introducido en la versión 4.4.0 (versión preliminar)
¿Hay una corrección de código? No

Importante

ResourceLockAttribute está planeado para MSTest 4.4 y solo está disponible en compilaciones en versión preliminar hasta que se publique MSTest 4.4.0.

Causa

Un [ResourceLock] atributo pasa su clave de recurso como literal de cadena completa en lugar de hacer referencia a una constante compartida.

Descripción de la regla

[ResourceLock] coincide con las pruebas mediante la igualdad exacta de cadenas con distinción entre mayúsculas y minúsculas de la clave de recurso. Se produce un error al abrir un literal de cadena completa: un error tipográfico genera una clave diferente, por lo que las pruebas en conflicto ya no se serializan y se ejecutan silenciosamente en lugar de producir un error de compilación. Hacer referencia a una constante compartida, como un WellKnownResources miembro o su propio const, convierte los errores tipográficos en un error de compilación y permite al compilador exigir que cada prueba que contenga el mismo recurso use la misma clave.

[ResourceLock("database")] // Violation: bare string literal.
[TestMethod]
public void ReadsSharedSchema() { }

Cómo corregir infracciones

Haga referencia a un WellKnownResources miembro para el estado global del proceso, o declare y haga referencia a su propio const string.

private const string Database = "database";

[ResourceLock(Database)]
[TestMethod]
public void ReadsSharedSchema() { }

Cuándo suprimir las advertencias

Es seguro suprimir esta advertencia si usa intencionadamente una clave de recurso literal y confía en que ninguna otra prueba del ensamblado debe coordinarse en el mismo recurso.

Supresión de una advertencia

Si solo quiere suprimir una única infracción, agregue directivas de preprocesador al archivo de origen para deshabilitar y volver a habilitar la regla.

#pragma warning disable MSTEST0073
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0073

Para deshabilitar la regla de un archivo, una carpeta o un proyecto, establezca su gravedad a none en el archivo de configuración.

[*.{cs,vb}]
dotnet_diagnostic.MSTEST0073.severity = none

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

Véase también