Nunit3, wie der Name des Testfalls basierend auf Parametern geändert wird, die von TestFixtureSource übergeben werden

8

Ich benutze NUnit 3.0 und TestFixtureSource, um Testfälle innerhalb eines Fixtures mehrfach mit verschiedenen Parametern / Konfigurationen auszuführen (ich möchte dies auf TestFix-Ebene machen). Einfaches Beispiel:

%Vor%

Nehmen wir an, Test () schlägt für eine der Konfigurationen fehl und ist für eine andere erfolgreich. In der Ausführungsberichtdatei und im Test-Explorer von Visual Studio wird der Name sowohl für die fehlgeschlagenen als auch für die erfolgreichen Ausführungen nur als Test () angezeigt, was nichts über die Ursache der Probleme aussagt.

Gibt es eine Möglichkeit, die Namen der Testfälle in dieser Situation zu beeinflussen (zB Präfix den Namen pro Fixture run / configuration)? Als Workaround drucke ich zur Zeit vor jedem Test die Ergebnisausgabe Fall brennt, aber das würde ich lieber vermeiden.

Da NUnit 3.0 in der Betaversion ist und diese Funktion ziemlich neu ist, konnte ich nichts in den Dokumenten finden. Ich habe TestCaseData gefunden, aber ich glaube nicht, dass es für die Verwendung mit Fixtures gedacht ist (es wurde für Testfälle entwickelt).

    
wade 15.09.2015, 23:38
quelle

2 Antworten

2

Ich kann keine Möglichkeit finden, den Testnamen zu ändern, aber das sollte nicht notwendig sein, da NUnit3 den Testnamen mit einer Beschreibung der Testumgebung erstellt.

Die Beispielklasse Fixture aus der Frage kann unverändert verwendet werden, wenn die Configuration und ConfigurationProvider eine Implementierung wie folgt hat:

%Vor%

Der 'Trick' besteht darin, sicherzustellen, dass der Konstruktor-Parameter des Fixtures ein String ist oder eine ToString -Methode hat, die eine sinnvolle Beschreibung des Fixtures liefert.

Wenn Sie den NUnit 3 Testadapter in Visual Studio verwenden, werden die Testsysteme als Fixture(Foo) , Fixture(Bar) und Fixture(Baz) angezeigt, sodass Sie leicht zwischen ihren Tests unterscheiden können. Die XML-Ausgabe von nunit3-console.exe verwendet auch beschreibende Namen, fx: fullname=MyTests.Fixture(Bar).Test

%Vor%

    
Daniel Brixen 17.02.2017 19:43
quelle
0

Eine Möglichkeit zum Ausführen solcher Aktionen besteht darin, Tokens im Quellcode zu suchen und zu ersetzen und dynamisch Testbibliotheken vor der Ausführung mit Befehlszeile msbuild zu erstellen. Hochstufige Schritte sind

  1. Definieren Sie Testfallnamen als sahtest_TOKEN in der Quelle und verwenden Sie dann Befehlszeilentools wie fnr.exe em> _TOKEN mit was auch immer du magst. Zum Beispiel sehtest_build2145 .
  2. Kompilieren Sie die DLL mit der Verwendung von msbuild, zum Beispiel msbuild / t: REbuild mytestproj.sln . Danach führen Sie alle Testfälle in mytestproj.dll .
  3. aus
SACn 24.02.2017 07:04
quelle

Tags und Links