MSTEST0018: DynamicData debe ser válido
Propiedad | Value |
---|---|
Identificador de la regla | MSTEST0018 |
Título | DynamicData debe ser válido |
Categoría | Uso |
La corrección es problemática o no problemática | Poco problemático |
Habilitado de forma predeterminada | Sí |
Gravedad predeterminada | Advertencia |
Introducido en la versión | 3.6.0 |
Causa
Un método marcado con [DynamicData]
debería tener un diseño válido.
Descripción de la regla
Los métodos marcados con [DynamicData]
también deben marcarse con [TestMethod]
(o un atributo derivado).
El miembro "origen de datos" al que se hace referencia:
- debe existir en el tipo especificado (clase actual si no se indica ningún tipo).
- no debe tener sobrecargas
- debe ser del mismo tipo (método o propiedad) que la propiedad
DataSourceType
- debe ser
public
- debe ser
static
- no se debe ser genérico
- no debe tener parámetros
- debe devolver
IEnumerable<object[]>
,IEnumerable<Tuple<T,...>>
oIEnumerable<ValueTuple<,...>>
El miembro "nombre para mostrar" al que se hace referencia:
- debe existir en el tipo especificado (clase actual si no se indica ningún tipo).
- no debe tener sobrecargas
- debe ser un método
- debe ser
public
- debe ser
static
- no se debe ser genérico
- debe devolver
string
- debe tomar exactamente 2 parámetros, el primero
MethodInfo
y el segundoobject[]
Ejemplo:
public static string GetDisplayName(MethodInfo methodInfo, object[] data)
{
return string.Format("{0} ({1})", methodInfo.Name, string.Join(",", data));
}
Cómo corregir infracciones
Asegúrese de que el atributo se ajusta a las condiciones descritas anteriormente.
Cuándo suprimir las advertencias
No suprima las advertencias de esta regla. Si se omite esta regla, se omitirán las instancias marcadas o se producirá un error en tiempo de ejecución.
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 MSTEST0018
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0018
Para deshabilitar la regla de un archivo, una carpeta o un proyecto, establezca su gravedad en none
del archivo de configuración.
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0018.severity = none
Para obtener más información, consulte Procedimiento para suprimir advertencias de análisis de código.