2015-03-12 22 views
5

W.r.t. Nunit; Gibt es einen Mechanismus, um einen bestimmten Testfall bedingt zu ignorieren?Bedingt Ignorieren Nunit Testfall

Etwas in den Zeilen:

[TestCase(1,2)] 
[TestCase(3,4, Ignore=true, IgnoreReason="Doesn't meet conditionA", Condition=IsConditionA())] 
public voidTestA(int a, int b) 

So gibt es einen solchen Mechanismus oder der einzige Weg, dies zu tun ist separaten Test für jeden Fall zu schaffen und Assert.Ignore im Testkörper zu tun?

+0

Haben Sie versucht, Assert.Ignore() verwenden? http://www.nunit.org/index.php?p=utilityAsserts&r=2.5.2 –

+0

Danke, aktualisiert die Frage mit Assert.Ignore, obwohl, ich denke, es würde bedeuten, dass wir noch separate Tests für jeden erstellen Fall (Replizieren des Testkörpers)? – dushyantp

Antwort

3

Sie könnten die folgenden auf den Körper des Tests hinzufügen:

if (a==3 && b == 4 && !IsConditionA()) { Assert.Ignore() } 

Diese Sie für jeden hätte tun Testfall Sie ignorieren möchte. Sie würden den Testbody in diesem Fall nicht replizieren, aber Sie würden ihn für jeden ignorierten Testfall hinzufügen.

0

Ich denke, es hilft Lesbarkeit testen, um die bedingte Logik innerhalb der Testkörper zu minimieren. Sie können die Testfälle jedoch eindeutig dynamisch generieren, indem Sie das testcasesource-Attribut für den Test verwenden, und in einer separaten Methode dynamisch eine Liste von Testfällen generieren, die mit dem Objekt nunit testcasedata ausgeführt werden.

Also nur die Tests, die Sie ausführen müssen/sind gültig ausgeführt werden, aber Sie haben immer noch eine Chance, usw. die Fälle zu protokollieren.

http://www.nunit.org/index.php?p=testCaseSource&r=2.6.4