unit-testing r continuous-integration hudson jenkins

unit testing - Integración continua(Hudson/Jenkins) y programación de R



unit-testing continuous-integration (3)

¿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?


Hudson / Jenkins admite la ejecución de 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.


No veo ningún problema en particular. Estas cosas tienden a tener un guion, por lo que solo

  • apunta a la parte superior de tu repositorio
  • N minutos después de cada registro, recorra los directorios de origen
  • invocar R CMD check en cada
  • su paquete debe configurarse para usar la prueba unitaria, para lo cual puede usar
    • RUnit que es la unidad de prueba inicial para R; es ampliamente utilizado
    • testthat que es un paquete nuevo de Hadley, y utilizado por muchos de sus paquetes
    • svUnit por Philippe, que AFAIK nunca alcanzó tanto como los otros dos.

Eso realmente no es diferente de la integración continua con los lenguajes compilados. Su pregunta es realmente acerca de cómo hacer pruebas unitarias dentro de R, y esa pregunta ha sido cubierta anteriormente.


en la oficina hemos estado utilizando Hudson / Jenkins durante bastante tiempo. He contribuido con la svUnit por lo que le recomendaría usar svUnit antes de intentar cualquier otra cosa.

eche un vistazo a las dos bibliotecas que mantengo: logging y delftfews o yo mismo tratando de seguir al zoo y redistribuirlo en github .

No he estado haciendo la limpieza recientemente, así que los tres guiones (en zoo , logging , delftfews ) son ligeramente diferentes. el de mi versión del zoológico se detendrá si falla alguna prueba. esto es práctico cuando está ejecutando una R CMD check , pero probablemente sea una idea menos buena cuando se realiza una integración continua.