MSTEST0018: DynamicData deve essere valido
Proprietà | valore |
---|---|
ID regola | MSTEST0018 |
Title | DynamicData deve essere valido |
Categoria | Utilizzo |
La correzione causa un'interruzione o meno | Non causa un'interruzione |
Abilitata per impostazione predefinita | Sì |
Gravità predefinita | Avviso |
Introdotto nella versione | 3.6.0 |
Causa
Un metodo contrassegnato con [DynamicData]
deve avere un layout valido.
Descrizione regola
I metodi contrassegnati con [DynamicData]
devono essere contrassegnati anche con [TestMethod]
(o un attributo derivato).
Il membro "origine dati" a cui si fa riferimento:
- deve esistere nel tipo specificato (classe corrente se non è specificato alcun tipo)
- non deve avere overload
- deve essere dello stesso tipo (metodo o proprietà) della
DataSourceType
proprietà - deve essere
public
- deve essere
static
- non deve essere generico
- deve essere senza parametri
- deve restituire
IEnumerable<object[]>
,IEnumerable<Tuple<T,...>>
oIEnumerable<ValueTuple<,...>>
Il membro "nome visualizzato" a cui si fa riferimento:
- deve esistere nel tipo specificato (classe corrente se non è specificato alcun tipo)
- non deve avere overload
- deve essere un metodo
- deve essere
public
- deve essere
static
- non deve essere generico
- deve restituire
string
. - deve accettare esattamente 2 parametri, il primo deve essere
MethodInfo
e il secondo deve essereobject[]
Esempio:
public static string GetDisplayName(MethodInfo methodInfo, object[] data)
{
return string.Format("{0} ({1})", methodInfo.Name, string.Join(",", data));
}
Come correggere le violazioni
Assicurarsi che l'attributo corrisponda alle condizioni descritte in precedenza.
Quando eliminare gli avvisi
Non escludere un avviso da questa regola. Se si ignora questa regola, le istanze contrassegnate verranno ignorate o genereranno un errore di runtime.
Eliminare un avviso
Se si vuole eliminare una singola violazione, aggiungere direttive del preprocessore al file di origine per disabilitare e quindi riabilitare la regola.
#pragma warning disable MSTEST0018
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0018
Per disabilitare la regola per un file, una cartella o un progetto, impostarne la gravità su none
nel file di configurazione .
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0018.severity = none
Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.