Ejecución de compilaciones nocturnas como Tarea programada de XP - ClassPath Problema

StackOverflow https://stackoverflow.com/questions/756603

  •  09-09-2019
  •  | 
  •  

Pregunta

Estoy ejecutando Junit Nightly Build en mi computadora como una tarea programada en Windows XP. Mi aplicación usa Jaxb, por lo tanto, algunas de las pruebas deben hacer referencia a los esquemas XSD utilizando el System ClassPath. Cuando la construcción nocturna se ejecuta mientras no estoy en la computadora, recibo un error como este:

java.lang.Exception: no se puede cargar esquema myschema.xsd de classpath

Sin embargo, cuando ejecuto la compilación manualmente no recibo tal error. La variable de entorno para la ubicación de mis esquemas es un Sistema Variable, no una variable de usuario, por lo que no sé qué podría estar causando este error. ¿Cuál podría ser causa de este error?

EDITAR: Alternativas como Hudson no son lo que estoy pidiendo. Estoy pidiendo una solución para la tecnología descrita anteriormente (archivo por lotes que se ejecuta como una tarea programada).

¿Fue útil?

Solución

Mi sospecha es que su directorio de trabajo es diferente de lo que espera (en lugar de la variable classpath específicamente). No es inmediatamente obvio si está ejecutando esta tarea programada como usuario o como tarea del sistema. En cualquier caso, vale la pena descubrir exactamente dónde se está ejecutando la tarea.

Dicho esto, aunque solía configurar compilaciones automáticas utilizando tareas programadas de Windows XP (exactamente como está haciendo ahora), actualmente usamos Cruisecontrol. En abstracto, esto no es muy diferente de lo que estás haciendo (ejecutar una construcción regularmente) pero aumenta su flexibilidad. Por aquí, la capacidad más valiosa de Cruisecontrol es detectar que los cambios se comprometieron y solo ejecutar la compilación después. Descubrimos que las construcciones rotas, las pruebas unitarias rotas, etc., dentro de los 10 minutos de una confirmación ahora.

Otros consejos

Hudson es otro motor de integración continua, que es muy simple de configurar:

Hudson ofrece las siguientes características:

  • Instalación fácil: solo java -jar hudson.war, o implementarla en un contenedor de servlet. Sin instalación adicional, sin base de datos.
  • Configuración fácil: Hudson se puede configurar completamente de su amigable GUI web con extensas verificaciones de error en la marcha y ayuda en línea. Ya no hay necesidad de ajustar XML manualmente, aunque si desea hacerlo, también puede hacerlo.
  • Soporte del conjunto de cambios: Hudson puede generar una lista de cambios realizados en la compilación de CVS/Subversion/Mercurial. Esto también se hace de una manera bastante eficiente, para reducir la carga del repositorio.
  • Enlaces permanentes: Hudson le ofrece URL legibles limpias para la mayoría de sus páginas, incluidos algunos enlaces de enlaces permanentes "Última construcción"/"Última construcción exitosa", para que puedan vincularse fácilmente desde otro lugar.
  • Integración RSS/Correo electrónico/IM: monitorear los resultados de compilación por RSS o correo electrónico para obtener notificaciones en tiempo real sobre fallas.
  • Etiquetado posterior al hecho: las compilaciones se pueden etiquetar mucho después de que las compilaciones se completen Junit/Testng Test Informes: los informes de prueba de JUnit se pueden tabular, resumir y mostrar con información del historial, como cuando comenzó a romperse, etc. La tendencia de la historia se traza se traza en un gráfico.
  • Construcciones distribuidas: Hudson puede distribuir cargas de compilación/prueba a varias computadoras. Esto le permite aprovechar al máximo esas estaciones de trabajo inactivas sentadas debajo de los escritorios de los desarrolladores. Archivo de huellas dactilares: Hudson puede realizar un seguimiento de qué compilación produjo qué frascos, y qué compilación está utilizando qué versión de frascos, y así sucesivamente. Esto funciona incluso para frascos que se producen fuera de Hudson, y es ideal para que los proyectos rastreen la dependencia.
  • Soporte de complementos: Hudson se puede extender a través de complementos de terceros. Puede escribir complementos para hacer herramientas/procesos de soporte de Hudson que utiliza su equipo.

Deberías revisar Hudson o Control de crucero. Ambos son fáciles de configurar y se encargarán de este tipo de problema para usted con más informes, control y mejorabilidad mejorada. Pasará menos tiempo investigando problemas de construcción.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top