2011-03-02 17 views
6

puedo ejecutar un caso de prueba individual que toma un solo valor de cadena sin problemas desde la línea de comandos:Run caso_prueba parametrizado individuo con nunit-consola

Por ejemplo /run:Namespace.Class.Method("my input string")

Sin embargo, no parece el mismo procedimiento a trabajar para mí con entradas numéricas

por ejemplo: /run:Namespace.Class.Method(1,2,3)

la salida se indica la entrada correcta como una 'prueba que desee ejecutar' pero en realidad no corre ningún pruebas

EDIT:

Mirando más en esto, parece que el problema es con las pruebas que tienen más de un argumento. Usando el siguiente archivo de prueba:

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 llamada nunit-console.exe /run:GetTestsProj.NunitConsoleTest GetTestsProj\GetTestsProj\bin\debug\GetTestsProj.dll ejecuta correctamente los 3 casos de prueba

La llamada nunit-console.exe /run:GetTestsProj.NunitConsoleTest.TestNumeric GetTestsProj\GetTestsProj\bin\debug\GetTestsProj.dll adecuadamente corre 1 caso_prueba

La llamada nunit-console.exe /run:"GetTestsProj.NunitConsoleTest.TestSingleString(\"My String\")" GetTestsProj\GetTestsProj\bin\debug\GetTestsProj.dll ejecuta correctamente 1 caso_prueba

Sin embargo, el llame al nunit-console.exe /run:GetTestsProj.NunitConsoleTest.TestNumeric(1,2,3) GetTestsProj\GetTestsProj\bin\debug\GetTestsProj.dll ejecuta 0 testcases

Y de manera similar a la llamada nunit-console.exe /run:"GetTestsProj.NunitConsoleTest.TestTwoStrings(\"String1\",\"String2\")" GetTestsProj\GetTestsProj\bin\debug\GetTestsProj.dll carreras 0 casos de prueba

Aunque nunit parece reconocer la entrada /run correctamente:

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 

y

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 

todo esto es utilizando NUnit 2.5.9.10348

Me interesa si esto es un error del usuario o una funcionalidad no compatible. Sería muy útil para lo que estoy tratando de hacer.

+0

Como presumiblemente es un error, lo he enviado a nunit aquí: [link] (https: //bugs.launchpad.net/nunit-3.0/+ error/731994). – afranz409

Respuesta

3

Parece que el problema es que la lista de testcases se divide en el carácter ',', lo que causa un problema obvio para las cajas de prueba parametrizadas. La información del error es here, y trataré de publicar la conclusión aquí cuando haya más información.

-1

No es que sirva para su problema en particular, pero ¿sabe usted que ReSharper de JetBrains tiene un tesorero de NUnit para VS? Probablemente haya más herramientas que lo tengan también. Tengo Resharper, y nunca he tenido la necesidad de ejecutar una única prueba desde la consola (además, tiene un montón de herramientas de refactorización geniales). Espero que esto no suene demasiado al spam. Solo me preguntaba por qué ejecutas pruebas individuales desde la consola.

+0

De hecho, tengo ReSharper (y es genial), pero estoy tratando de ejecutar estas pruebas en un entorno de CI, lo que significa que estoy limitado a la consola. También estoy ejecutando pruebas de front-end que usan Selenium. Hay dos razones para ejecutar Casos de prueba individuales: 1) Las pruebas de selenio tienden a alcanzar tiempos de espera u otros problemas intermitentes, y me gustaría poder repetir las pruebas fallidas un par de veces, y 2) Me gustaría poder tener casos de prueba individuales en máquinas virtuales separadas para ayudar a paralelizar el proceso – afranz409

+0

Ok, entonces me temo que puedo ser de poca ayuda. En mi trabajo también ejecutamos CI, pero solo proyectos completos en el momento, no pruebas individuales. ¿Pensaste en mover esos casos de prueba especiales a un proyecto propio y luego ejecutarlos como de costumbre? – Morten

0

Parece que este comportamiento debería solucionarse en NUnit 2.6.0 y posteriores.

Si todavía está encontrando este problema como yo (usando NUnit 2.6.4 aquí), entonces puede que tenga que escapar de los caracteres de comillas dobles poniendo una barra invertida delante de ellos.