Pregunta

Tenemos un gran proyecto de Delphi (1,5 millones de líneas de código), y nos estamos moviendo a la utilización de procesos ágiles.

Ya tenemos un entorno de integración continua (FinalBuilder), que ya se ha actualizado para incluir las pruebas unitarias (DUnit) y métricas de código (CodeHealer) en los mensajes de correo electrónico a todos los miembros de nuestro equipo de desarrollo. Nuestra cobertura de prueba de unidad no es muy grande, por lo que ahora estoy tratando de conseguir AQtime en la mezcla de algunos resultados cobertura de la prueba en cada generación.

Estoy usando la tarea "Ejecutar Programa" para ejecutar el ejecutable de prueba de unidad, registrar los resultados y analizar el archivo después. Tengo la intención de utilizar la tarea "Ejecutar script" para ejecutar AQtime (a través de COM) y exportar los resultados a XML para que pueda analizar a través de esos resultados.

El problema que tengo es con AQtime ejecutar el ejecutable de prueba de unidad, que pierden la capacidad de monitorear el ejecutable de prueba de la unidad directamente. Me gustaría llegar FinalBuilder para analizar los resultados de ambas tareas. ¿Alguien sabe cómo conseguir acceso a los resultados DUnit cuando se llama desde AQtime?

¿Fue útil?

Solución

corrió por el mismo camino, y que no se ejecutan pruebas de DUnit AQTime,

En su lugar, crear y ejecutar nuestras pruebas DUnit usando FinalBuilder.

pruebas unitarias nuestro uso XmlTestRunner, entonces podemos saber si el prueba falla o no muy fácilmente mediante una consulta XPath en el archivo XML resultante.

Actualización: Una actualización reciente a FinalBuilder 7.0 ahora es compatible con DUnit. Es a través de sus propios XMLTestrunner.pas, que está bajo el directorio FinalBuilder después de la instalación. Este corredor da salida a los resultados de la prueba en el mismo formato que NUnit. A continuación, se integra muy bien en FinalBuilder servidor.

Otros consejos

son una especie de describir la configuración estamos evolucionando lentamente a.

    pruebas
  • DUnit se compilan como aplicaciones de consola utilizando el TTextTestListener se define en la unidad de TextTestRunner.
  • servidor de CI es un script cmd que construye todos los proyectos y ejecuta todas las pruebas.
  • La salida de las pruebas se canaliza en un archivo.

Una solución podría ser tener AQTime perfil estas aplicaciones de consola al mismo tiempo ser capaz de canalizar los resultados a un archivo que se pueden analizar después?!

Otra solución podría ser la implementación de su propio objeto TestListener y tienen ese objeto escribir los testresults al registro de eventos, directamente a un archivo de registro, una base de datos o donde sea similar y tener esta recogido por FinalBuilder.

En lugar de tener algo como esto en el archivo de proyecto

  Application.Initialize;
  if System.IsConsole then TextTestRunner.RunRegisteredTests
  else GUITestRunner.RunRegisteredTests;

se convertiría en algo como esto

  Application.Initialize;
  if System.IsConsole then OurEventLogTestRunner.RunRegisteredTests
  else GUITestRunner.RunRegisteredTests;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top