2010-02-08 24 views
6

Estoy viendo la salida XML de NUnit en este momento, y me pregunto si es posible generar la salida para fallas solo.¿Es posible personalizar NUnit XML Output

Es decir, si una prueba pasa bien, no se genera ninguna salida XML para nada.

(ACTUALIZACIÓN: XSLT no es una opción aquí no quiero salida XML para las pruebas pasaron en absoluto:. Si yo no necesito los detalles acerca de las pruebas pasadas, no quiero el sistema para perder tiempo generando esos detalles.)

La idea es que la salida XML tiende a ser bastante grande si tiene muchas pruebas, pero el 80% de las veces persigue fallas de todos modos. En tales casos, me gustaría ejecutar mis pruebas de tal manera que solo se genere información sobre fallas.

Respuesta

1

Publicada esta pregunta para NUnit Google Group, y Charlie Poole confirmed que no existe tal opción.

4

puede especificar un archivo XSLT cuando se ejecuta el NUnit console runner para personalizar el archivo generado: archivo XML

nunit-console /transform:failures.xslt nunit.tests.dll 

El valor predeterminado se genera utilizando this archivo XSLT que se puede modificar fácilmente para informar sólo fracasos.

+0

Bueno, quiero decir que no quiero ningún resultado para las pruebas aprobadas en absoluto. Si no necesito los detalles sobre las pruebas aprobadas, no quiero que el sistema dedique tiempo a generar esos detalles. – andreister

+0

Gracias Keith - hemos estado buscando una manera de controlar el formato del archivo y tu respuesta hace exactamente lo que necesitábamos :-) –

0

No puedo garantizar si funciona, pero posiblemente pueda escribir su propio complemento para lograr lo que quiere. Si conecta el punto de extensión "EventListeners" con su complemento, se llamará a su método TestFinished (TestResult tr) que tendrá que implementar cada vez que finalice una prueba. Simplemente lea el resultado y establezca la propiedad WriteResultEntry en verdadero solo para las pruebas fallidas. Bueno, no estoy seguro de si Charlie ha implementado la última propiedad, pero si no, su complemento aún podría crear su propio archivo de resultados NUnit solo para las pruebas fallidas.

/// <summary> 
/// Test finished. 
/// </summary> 
/// <param name="result">The result.</param> 
public void TestFinished(TestResult result) 
{ 
    if (!result.IsFailure) 
    {    
     result.WriteResultEntry = false; 
    } 
} 

Si no hay tal WriteResultEntry propiedad, preguntarle a Charlie para ponerlo en práctica o crear su propio informe de resultados de sólo escritura de salida cuando result.IsFailure es cierto.

Cuestiones relacionadas