2015-03-12 17 views
5

W.r.t. NUnit; Esiste un meccanismo per ignorare condizionalmente un caso di test specifico?Conditionally ignore testcase nunit

qualcosa nelle linee di:

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

Quindi non v'è alcun meccanismo o l'unico modo per farlo è quello di creare test separato per ciascun caso e fare Assert.Ignore nel corpo di prova?

+0

Hai provato a usare Assert.Ignore()? http://www.nunit.org/index.php?p=utilityAsserts&r=2.5.2 –

+0

Grazie, aggiornato la domanda con Assert.Ignore, anche se, penso, significherebbe che continuiamo a creare test separati per ogni caso (replicando il corpo del test)? – dushyantp

risposta

3

si potrebbe aggiungere il seguente al corpo del test:

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

Questo si dovrebbe fare per ogni TestCase si vorrebbe ignorare. In questo caso non si replicherebbe il testbody, ma lo si aggiungerebbe ad ogni testcase ignorato.

0

Penso che aiuti a verificare la leggibilità per ridurre al minimo la logica condizionale all'interno del corpo del test. Tuttavia, è possibile generare dinamicamente i casi di test utilizzando l'attributo testcasesource nel test e in un metodo separato generare dinamicamente un elenco di casi di test da eseguire utilizzando l'oggetto nunit testcasedata.

Quindi, solo i test necessari/validi per l'esecuzione vengono eseguiti ma è ancora possibile registrare i casi ecc.

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

Problemi correlati