¿Alguien sabe de una manera de hacer una integración continua con la programación R? Conozco herramientas como el paquete svUnit para realizar las pruebas unitarias, pero ¿alguien ha intentado ejecutarlas con Hudson/Jenkins?Integración continua (Hudson/Jenkins) y programación R
Respuesta
No veo ningún problema en particular. Estas cosas tienden a ser con guión tan sólo pudiera
- punto a la parte superior de su repositorio
- N minutos después de cada registro, un bucle sobre directorios de origen
- invocan
R CMD check
en cada - su El paquete debe configurarse para usar la prueba unitaria, para lo cual puede usar
que en realidad no es diferente de integración continua con lenguajes compilados. Su pregunta es realmente acerca de cómo hacer pruebas unitarias dentro de R, y esa pregunta ha sido cubierta anteriormente.
lo que escribe es bastante cierto -en general-, la pregunta, sin embargo, menciona explícitamente a Jenkins/Hudson, y que yo sepa, la mejor integración la ofrece [svUnit] (https://r-forge.r-project.org/scm /viewvc.php/pkg/svUnit/R/?root=sciviews). ver mi otra respuesta. ...IMO, el simple hecho de poder ejecutar pruebas de unidades con guiones no es de mucha utilidad si los resultados no están en un formato compatible con la herramienta de integración continua elegida. – mariotomo
¿Alguna sugerencia para lograr que Jenkins muestre una compilación ha fallado si falla la verificación R CMD? –
Claro, mira el nuevo [proyecto de r-travis en github] (https://github.com/craigcitro/r-travis) que tiene una función 'dump_logs'. –
Hudson/Jenkins admite ejecutar scripts bash. Creo que puedes usar esto como una entrada a tu mundo R. En R, una forma simple de mantener el resultado es usar sink ("toYourFile.txt") y luego usar la función de visualización de resultados de CI para mostrar toYourFile.txt.
Es fácil hacer que el CI muestre el archivo, ¿cómo lo hace para identificar los errores? –
"cómo identificar errores?", Necesita que el resultado esté en un formato que pueda ser reconocido por Jenkins, y esto es exactamente lo que puede hacer con svUnit, usando el protocolo "junit". – mariotomo
en la oficina que hemos estado usando Hudson/Jenkins desde hace bastante tiempo. He contribuido con integration of svUnit to Jenkins, por lo que le recomiendo que use svUnit antes de intentar cualquier otra cosa.
echar un vistazo a las dos bibliotecas que mantener: logging y delftfews o en mí mismo tratando de seguir zoo y redistribute it on github.
no he estado haciendo limpieza recientemente por lo que los tres guiones (en zoo, logging, delftfews) son un poco diferentes. el de mi versión del zoológico se detendrá si falla alguna prueba. esto es práctico cuando está ejecutando R CMD check
, pero probablemente sea menos una buena idea al hacer una integración continua.
¿Puedes aclarar cómo hacer que Jenkins falle, o en qué parte del código svUnit se menciona? No pude encontrar ningún texto relevante en la documentación o viñeta del paquete svUnit, y no me resulta claro a partir de las secuencias de comandos que escribió (soy nuevo en CI) lo que provocará que Jenkins pase o falle. ¿Simplemente responde a stderr? –
dices que eres nuevo en CI, te sugiero que leas el manual de Jenkin para entender su estructura, tal vez quieras echarle un vistazo a un servidor Jenkins en funcionamiento? (p. ej .: https://csvjdbc.ci.cloudbees.com/job/csvjdbc/) cualquier cambio comprometido en sus orígenes hará que Jenkins ejecute el guión que registre, y al completar con éxito el guión, usará el informe generado publicar las pruebas siguientes/fallidas/omitidas. – mariotomo
¿Cómo configuró el siguiente/error, basado en el informe? ¿Es eso estándar en Jenkins? – bobK
- 1. Integración continua y QA
- 2. Integración continua: mejores prácticas
- 3. integración continua con mysql
- 4. JSTestDriver e integración continua
- 5. Subversion con integración continua
- 6. integración continua python
- 7. Integración continua con .net y svn
- 8. C#/NET - integración continua y FTP despliegue
- 9. Integración continua con Teamcity y Clearcase
- 10. UI Testing Framework + Integración continua?
- 11. ¿Qué es la integración continua?
- 12. Integración continua con ASP.Net MVC
- 13. Windows Azure e integración continua
- 14. Creaciones limpias en integración continua
- 15. Integración continua para proyectos Xcode?
- 16. ¿Cómo migrar de "Integración Arcana" a Integración Continua?
- 17. Hudson o Teamcity para una integración continua?
- 18. Configuraciones de compilación de integración continua
- 19. ¿Qué marco de integración continua para Perl?
- 20. Integración continua de Git en Windows
- 21. Sistema de integración continua para Python Codebase
- 22. Configuración de la integración continua con SVN
- 23. Integración continua y administración de base de datos
- 24. Cómo usar Jugar con módulos personalizados y integración continua
- 25. Desarrollo de integración continua y complemento de eclipse
- 26. ¿Qué software de integración continua usa?
- 27. Integración continua frente a compilaciones nocturnas
- 28. ¿Qué biblioteca de integración continua usar?
- 29. Sistema de integración continua para Delphi
- 30. Integración Java-R?
+1 También estoy interesado en esto, a fin de detectar automáticamente las actualizaciones de paquetes de CRAN que rompen mis pruebas. Desearía poder enviar fácilmente un montón de pruebas en sentido ascendente para ayudar a los desarrolladores de paquetes, pero las pruebas de automatización funcionarán por el momento. – Iterator
preguntándome si @Iterator o Travis probaron la última svUnit. según yo, svUnit ofrece una "muy buena" integración en Jenkins, por lo que ver a Dirks responder ser "aceptado" me hace pensar que aún no lo has adelantado. – mariotomo
@mariotomo - Gracias por la alerta - Definitivamente lo verificaré. Tengo un próximo proyecto que necesitará usar tales pruebas. – Iterator