2012-03-29 7 views
4

Wir verwenden NUnit, um unsere Integrationstests auszuführen. Einer der Tests sollte immer dasselbe tun, aber unterschiedliche Eingabeparameter verwenden. Leider können wir das Attribut [TestCase] ​​nicht verwenden, da unsere Testfälle in einem externen Speicher gespeichert sind. Wir haben dynamische Testfälle, die von unseren QA-Ingenieuren hinzugefügt, entfernt oder deaktiviert (nicht entfernt) werden können. Die QA-Mitarbeiter haben keine Möglichkeit, [TestCase] ​​-Attribute in unseren C# -Code einzufügen. Sie können sie nur in den Speicher hinzufügen.Dynamische Testfälle

Mein Ziel ist es, Testfälle aus dem Speicher in den Speicher zu lesen, den Test mit allen aktivierten Testfällen auszuführen, zu melden, wenn ein Testfall fehlgeschlagen ist. Ich kann die "foreach" -Anweisung nicht verwenden, da, wenn der Testfall # 1 fehlgeschlagen ist, der Rest der Testfälle überhaupt nicht ausgeführt wird. Wir haben bereits einen Build-Server (CruiseControl.net), auf dem generierte NUnit-Berichte angezeigt werden. Daher möchte ich NUnit weiterhin verwenden.

Können Sie auf einen Weg zeigen, wie ich mein Ziel erreichen kann? Danke.

+1

möglich Duplikat [Dynamische Tests in NUnit erstellen] (http://stackoverflow.com/questions/ 866816/dynamically-create-tests-in-nunit) – dasblinkenlight

Antwort

6

Sie können [TestCaseSource("PropertyName")\] verwenden, die eine Eigenschaft (oder eine Methode usw.) angibt, aus der Daten geladen werden können.

Zum Beispiel habe ich eine test case in Noda Time, die alle BCL-Zeitzonen verwendet - und das könnte sich natürlich im Laufe der Zeit ändern (und unterscheidet sich bei Mono), ohne dass ich den Code überhaupt ändere.

Lassen Sie Ihre Immobilie/Ihr Mitglied die Testdaten in eine Sammlung laden und Sie sind weg.

(I passieren immer verwendet, um Eigenschaften zu haben, aber es klingt wie es auch mit Methoden gut funktionieren soll.)