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 | 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.