Nunit: TestCaseData.SetName-Problem

Erstellt am 28. Juli 2017  ·  5Kommentare  ·  Quelle: nunit/nunit

Wenn ich die SetName-Methode verwende, um meinen Test zu benennen, und der Name einen Punkt enthält, zeigt der VS-Test-Explorer den Test nicht richtig an.
image

Alle Tests auf dem obigen Bildschirm werden in denselben Methoden verwendet, aber im Test-Explorer werden sie wie verschiedene Klassen angezeigt. Alle Tests, die keinen Punkt im Namen haben, werden in „CreateOrdersTests“ zusammengefasst – 5 Items. Aber die "CreateSingleOrderChargeRate1.5" wird in die separate Klasse "CreateSingleOrderChargeRate1" gelegt.

Wenn ich den Punkt durch ein Komma ersetze, ist das Problem behoben. Überprüfen Sie den Bildschirm.
image

Danke.

done

Hilfreichster Kommentar

Das hat mir tatsächlich geholfen: _benutze keine Namen mit einem Punkt_

Alle 5 Kommentare

NUnit-Testnamen sehen standardmäßig wie der vollständige Name einer Methode aus – plus optionale Argumentliste –, aber wir erlauben dem Benutzer, den Namen des Methodenteils zu ändern. NUnit hat eigentlich überhaupt keine Erwartungen an das Format eines Namens und verwendet den Namen nicht einmal, um Tests zu finden, es sei denn, Sie fragen es über einen Filter danach. IOW, ein NUnit-Testname ist eine beliebige Zeichenfolge, die nicht einmal eindeutig sein muss.

Visual Studio, OTOH, geht davon aus, dass Tests als vollständiger Name einer Testmethode benannt werden, und erfordert, dass sie eindeutig sind. Dies ist eine Diskrepanz, die niemals vollständig überwunden werden kann. Aus diesem Grund können wir nur vorschlagen, dass Benutzer keine Namen verwenden, die einen Punkt enthalten, da dies Visual Studio verwirrt.

Meine Neigung ist, dies als keinen Fehler zu schließen. Eine Alternative besteht darin, es als Adapterfehler zu markieren. Der Adapter kann den Namen ändern, um die vs-Anforderungen zu erfüllen. Ich denke definitiv nicht, dass wir es allgemein ändern sollten, nur um eines einzelnen Läufers willen.

@OsirisTerje Wenn Sie dies als Problem für den Adapter akzeptieren möchten, verschieben Sie es bitte. Andernfalls schließen wir es.

Hallo Charlie,

Danke für deine ausführliche Antwort.

Schließen Sie dies aus den Gründen, die @CharliePoole oben

Das hat mir tatsächlich geholfen: _benutze keine Namen mit einem Punkt_

Die Lösung für diesen Fall besteht darin, den Punkt durch \u2024 zu ersetzen. Verwenden Sie also kurz vor der Benennung des Tests .Replace(".", "\u2024")

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen