2011-03-02 15 views
6

posso eseguire un testcase individuo che prende un singolo valore di stringa senza problemi dalla riga di comando:Run testcase parametrizzato individuo con NUnit-console

Per esempio /run:Namespace.Class.Method("my input string")

Tuttavia la stessa procedura non sembra a lavorare per me con ingressi numerici

ad esempio: /run:Namespace.Class.Method(1,2,3)

l'output elenca l'ingresso corretto come 'prova per eseguire' ma in realtà non eseguire alcun test

EDIT:

Guardando in questo ulteriore, sembra che il problema sia con i test che prendono più di un argomento. Utilizzando il seguente file di prova:

namespace GetTestsProj 
{ 
    [TestFixture] 
    class NunitConsoleTest 
    { 
     [TestCase(1,2,3)] 
     [Test, Description("A simple test with parameterized numeric inputs")] 
     public void TestNumeric(int a, int b, int c) 
     { 
      Assert.AreEqual(c, a + b); 
     } 

     [TestCase("My String")] 
     [Test, Description("A simple test with parameterized string input")] 
     public void TestSingleString(string a) 
     { 
      Assert.AreEqual("My String", a); 
     } 
     [TestCase("String1", "String2")] 
     [Test, Description("A simple test with parameterized numeric inputs")] 
     public void TestTwoStrings(string a, string b) 
     { 
      Assert.AreEqual("String1", a); 
     } 
    } 
} 

La chiamata nunit-console.exe /run:GetTestsProj.NunitConsoleTest GetTestsProj\GetTestsProj\bin\debug\GetTestsProj.dll gestisce correttamente tutti e 3 i casi di test

La chiamata nunit-console.exe /run:GetTestsProj.NunitConsoleTest.TestNumeric GetTestsProj\GetTestsProj\bin\debug\GetTestsProj.dll funziona correttamente 1 testcase

La chiamata nunit-console.exe /run:"GetTestsProj.NunitConsoleTest.TestSingleString(\"My String\")" GetTestsProj\GetTestsProj\bin\debug\GetTestsProj.dll eseguito correttamente 1 testcase

Tuttavia, il chiama nunit-console.exe /run:GetTestsProj.NunitConsoleTest.TestNumeric(1,2,3) GetTestsProj\GetTestsProj\bin\debug\GetTestsProj.dll esegue 0 testicoli

E allo stesso modo la chiamata nunit-console.exe /run:"GetTestsProj.NunitConsoleTest.TestTwoStrings(\"String1\",\"String2\")" GetTestsProj\GetTestsProj\bin\debug\GetTestsProj.dll Runs 0 testcases

Anche se NUnit sembra di riconoscere l'ingresso /run correttamente:

Selected test(s): GetTestsProj.NunitConsoleTest.TestNumeric(1,2,3) 

Tests run: 0, Errors: 0, Failures: 0, Inconclusive: 0, Time: 0 seconds 
    Not run: 0, Invalid: 0, Ignored: 0, Skipped: 0 

e

Selected test(s): GetTestsProj.NunitConsoleTest.TestTwoStrings("String1", "String2") 

Tests run: 0, Errors: 0, Failures: 0, Inconclusive: 0, Time: 0.0156256 seconds 
    Not run: 0, Invalid: 0, Ignored: 0, Skipped: 0 

questo è tutto utilizzando NUnit 2.5.9.10348

Mi interessa sapere se si tratta di un errore dell'utente o di una funzionalità non supportata. Sarebbe molto utile per quello che sto cercando di fare.

+0

Poiché questo è presumibilmente un bug, l'ho inviato a nunit qui: [link] (https: //bugs.launchpad.net/nunit-3.0/+ bug/731994). – afranz409

risposta

3

Sembra che il problema sia che l'elenco di test è diviso sul carattere ",", causando un problema evidente per i test di prova parametrizzati. Le informazioni sui bug sono here e cercherò di postare la conclusione qui quando ci sono più informazioni.

-1

Non che questo aiuti il ​​tuo particolare problema, ma sei consapevole che ReSharper di JetBrains ha un testnunner NUnit per VS? Probabilmente ci sono anche altri strumenti. Ho Resharper, e non ho mai avuto la necessità di eseguire test singoli dalla console poiché (inoltre, ha un sacco di strumenti di refactoring interessanti). Spero che questo non assomigli molto allo spam. Mi chiedevo solo perché esegui test singoli dalla console.

+0

In realtà ho ReSharper (ed è fantastico), ma sto cercando di eseguire questi test in un ambiente CI, il che significa che sono limitato alla console. Sto anche eseguendo test front-end che usano il selenio. Esistono due motivi per eseguire singoli casi di test: 1) I test al selenio hanno la tendenza a colpire timeout o altri problemi intermittenti, e mi piacerebbe essere in grado di rieseguire test falliti un paio di volte, e 2) mi piacerebbe essere in grado di eseguire singoli casi di test su VM separate per aiutare a parallelizzare il processo. – afranz409

+0

Ok, allora ho paura che possa essere di scarso aiuto. Al mio lavoro eseguiamo anche CI, ma solo interi progetti al momento, non singoli test. Hai pensato di spostare questi casi di test speciali in un progetto a parte e poi eseguirli come al solito? – Morten

0

Sembra che questo comportamento sia corretto in NUnit 2.6.0 e successivi.

Se si è ancora in esecuzione in questo problema come se fossi (utilizzando NUnit 2.6.4 qui), potrebbe essere necessario sfuggire ai caratteri di virgolette inserendo una barra rovesciata davanti a essi.

Problemi correlati