2009-04-23 22 views
7

Tengo un gran conjunto de pruebas NUnit; Necesito importar los resultados de una ejecución determinada en una base de datos, luego caracterizar el conjunto de resultados y presentarlos a los usuarios (correo electrónico para fallas de prueba, presentación web para examinar los resultados). También debo realizar un seguimiento de varias ejecuciones a lo largo del tiempo (para informar las tasas de fallas a lo largo del tiempo, etc.).¿Base de datos para importar los resultados de NUnit?

El XML será el XML generado por nunit-console. Me gustaría importar el XML con un mínimo de alharacas en alguna base de datos que luego puede usarse para persistir y presentar resultados. Tendremos una serie de categorías personalizadas que también tendremos que ser capaces de ordenar.

¿Alguien sabe de un esquema de base de datos que puede manejar la importación de este tipo de datos que se pueden personalizar para nuestras necesidades individuales? Este tipo de problema parece que debería ser común, por lo que debería existir una solución común para él, pero parece que no puedo encontrar uno. Si alguien ha implementado una solución de este tipo antes, también se agradecería su consejo.

+0

Si su cliente/stakeholder está utilizando los resultados de nunit para afirmar que sus características (especificaciones) están completas. Debería considerar el desarrollo impulsado por el comportamiento. Estos marcos proporcionan resultados en un formato fácil de leer. http://en.wikipedia.org/wiki/Behavior_Driven_Development – mxmissile

Respuesta

4

Me parece que está realmente detrás de un servidor de compilación como CruiseControl.NET o TeamCity.

Obtenga el servidor de compilación para ejecutar las pruebas, y hace el trabajo de decirle a la gente lo que falló y por qué.

Recomiendo TeamCity ya que es de varios órdenes de magnitud más fácil de configurar.

+0

Hay una gran oferta que va alont con un Build Server. Puede ser la respuesta correcta, pero no siempre o mejor que trabajar directamente con los resultados. No tenemos el presupuesto para TeamCity (aunque creo que estoy empezando a comunicarme con mi jefe), y CruiseControl.Net no encaja bien en lo que hacemos ahora para las compilaciones. Estoy interesado en una solución solo usando NUnit y una base de datos. –

+0

¿Por qué no tiene el presupuesto para una pieza de software gratuita? TeamCity Professional no cuesta nada. –

+0

TeamCity es gratuito (como en Beer) para pequeños equipos que trabajan en proyectos bastante sencillos. No tenemos ninguno. –

2

Estoy aquí para resolver el mismo problema. Actualmente nos estamos inclinando por escribir un XSLT para transformar los resultados XML en instrucciones de inserción. A continuación, ejecute el archivo resultante de instrucciones de inserción a través de un intérprete SQL de línea de comandos. Idealmente, preferiría tener un add-in/extensión de NUnit que maneje todo esto por mí. Desafortunadamente no he podido encontrar uno.

1

Para construir la respuesta de IainMH es posible que desee ver el uso de Trac con BITTEN, es un sistema de compilación de código abierto, que puede ejecutar pruebas de n unidades e informar los resultados. Actualmente lo uso para esa funcionalidad exacta.

1

Al usar MS SQL, puede importar todos los XML a una columna común de tipo de datos [xml]. Sobre esto, se pueden realizar xpaths, búsquedas y transformaciones.

1

Otra alternativa a CruiseControl o TeamCity es Atlassians Bamboo si no tiene dinero. Soy un gran admirador de su software por su facilidad de uso y tienen un acuerdo sobre dónde puede obtener bambú por 10 dólares.

-3

¿Por qué necesita tener los resultados en una base de datos? ¿Quién los va a usar? El número de fallas no puede ser grande. Si es (repetidamente) su proceso de desarrollo es incorrecto. Arregla el proceso Elimine el desperdicio (uno de los principios magros), no lo recolecte.

Tome pasos más pequeños (iteraciones más cortas, construcción continua), elimine las dependencias.

Esto no se suele hacer, porque los proyectos que tienen este tipo de problemas no se entregan pero se cancelan (eventualmente).

[editar] Michael, el seguimiento de fallas de nunidad durante un tiempo más prolongado proporciona un valor cero. Necesitas un breve ciclo de retroalimentación. Soluciona los problemas ahora Si espera hasta que haya acumulado muchos problemas, se sentirá abrumado por el ruido.

El buen seguimiento de problemas se realiza a la derecha (nivel de abstracción más alto posible). Definitivamente no es una prueba unitaria.

+1

El seguimiento de lo que falla (y cuándo y con qué frecuencia) es clave para identificar las causas principales de sus problemas. Sin ella, pierdes el tiempo tratando de resolver los problemas de proceso incorrectos. Yo diría que un buen seguimiento de problemas es crítico para un proceso de desarrollo eficiente. –

+0

Michael, exactamente. Estamos sufriendo con una base de código heredada con un conjunto de prueba muy insuficiente; las pruebas que tenemos (es un número grande, pero brindan cobertura incompleta) tienen una cierta cantidad de inconsistencia en sus resultados. El seguimiento de las inconsistencias, durante largos períodos de tiempo (meses) es importante para nuestra priorización. –

+0

Aunque estoy de acuerdo en el principio, en nuestro caso, el análisis de fallas de solo un día puede proporcionar una gran cantidad de información. Probamos cómo nuestro software interactúa con nuestro hardware. Si ocurre una falla solo en los sensores de color, eso nos da una idea de dónde buscar el problema. Si ocurre solo en sensores de alta resolución en blanco y negro, buscaremos en otro lugar. Hay una docena de propiedades para nuestros sensores que pueden (o no) ser importantes. El análisis de los resultados en el XML es impracticle. Estoy intentando eliminar el desperdicio. –

1

Esperamos evitar esto, pero hemos generado un esquema de base de datos a partir del esquema XML de resultados de NUnit; Sin embargo, es un poco deficiente, porque NUnit realiza algunos procesos (imprecisos y extraños) para determinar algunas de las estadísticas críticas (por ejemplo, "ignorado" frente a "no ejecutado").

Todavía esperamos encontrar un esquema/proceso que NO sea un sistema completo de compilación CIT que nos permita personalizar una base de datos para importar los resultados, pero actualmente estamos usando una base de datos enrollada a mano que nosotros ' Necesitaré hacer muchas personalizaciones para obtener los informes deseados.

+0

¿Estaría dispuesto a compartir lo que tiene hasta ahora? Estoy volviendo a esto y considerando tomarlo personalmente como una adición a NUnit. –

Cuestiones relacionadas