2012-04-11 8 views
5

Estoy usando Cruisecontrol para construir código y ejecutar ~ 200 casos de prueba.Determinando el caso de prueba que se está ejecutando actualmente por Nunit

A veces la construcción se bloquea debido a algunos de los casos de prueba y no puedo determinar qué caso de prueba es.

¿Es posible imprimir el nombre del caso de prueba que se está ejecutando actualmente sin modificar el código del caso de prueba actual?

En caso afirmativo, ¿cómo?

Respuesta

1

TestContext.CurrentContext.Test.Name ayudará a identificar el caso de prueba que se está ejecutando actualmente. Poniendo

Console.WriteLine("Currently Executing Test Case : " + TestContext.CurrentContext.Test.Name); 

en el método con el atributo SetUp se imprimirá el UT actualmente en ejecución.

4

Supongo que está utilizando NUnit para realizar sus pruebas. Si es así, en lugar de usar el bloque <nunit> en la configuración de CruiseControl, use la tarea <exec>. En el elemento <buildArgs>, incluya el argumento de línea de comandos/labels. Esto imprimirá la información en el registro del servidor.

En lugar de utilizar:

<nunit> 
    <path>C:\Program Files (x86)\NUnit 2.5.10\bin\net-2.0\nunit-console.exe</path> 
    <assemblies> 
     <assembly>C:\Projects\Personal\MyTestApp\MyTestApp.Tests\bin\Debug\MyTestApp.Tests.dll</assembly> 
    </assemblies> 
</nunit> 

Uso:

<exec> 
    <executable>C:\Program Files (x86)\NUnit 2.5.10\bin\net-2.0\nunit-console.exe</executable> 
    <buildArgs>/labels C:\Projects\Personal\MyTestApp\MyTestApp.Tests\bin\Debug\MyTestApp.Tests.dll</buildArgs> 
</exec> 

Sé que no es lo ideal, pero se imprimirá cada prueba ya que se ejecuta en el registro. A continuación, puede usar la tarea de combinación para fusionar el archivo xml generado por nunit en su registro de compilación.

Intente hacer esto usando la aplicación de la consola ccnet primero, para que pueda ver la salida en tiempo real. Debería ayudarlo a ver lo que está buscando.

También podría ser bueno para enviar un parche a climatizador añadir la siguiente línea a los "\ core \ tareas del proyecto \ NUnitArgument.cs" file:

line: 53   argsBuilder.AddArgument("/labels"); 

O simplemente puede añadir esa línea, compila CruiseControl y usa tu propia versión.

Cuestiones relacionadas