2010-03-30 14 views
45

R es un lenguaje de programación estadística. Parte de R es el uso de Paquetes, que a su vez están escritos en el lenguaje R. La mejor práctica de programación incluye el uso de pruebas unitarias para probar las funciones dentro de estos paquetes mientras se escriben y cuando se usan.¿Cuál es el estado actual de apoyo Prueba de la unidad en el lenguaje R

Soy consciente de algunos paquetes para las pruebas unitarias dentro de R, siendo éstos

Estoy interesado en saber;

¿Hay algún otro paquete por ahí? Dada la experiencia de las personas, ¿estos paquetes se destacan en diferentes cosas? ¿Cuál es el estado actual de la técnica en pruebas unitarias para R?

Respuesta

30

Prueba de la unidad parece ser más o menos un problema resuelto, por lo que los tres paquetes probable que sea adecuado para sus necesidades. Sin embargo, hay sutiles diferencias entre ellos:

RUnit está basado en xunit, y como tal es fácil de entender si ha utilizado versiones de otros idiomas.

svUnit utiliza las mismas pruebas que Runit, pero incluye una interfaz gráfica de usuario para ayudar con el uso interactivo.

testthat no es compatible con ninguna de las dos, pero incluye muchas de las mismas características y puede comprobar solo ejecutar pruebas en archivos que no han cambiado, lo que es útil para probar proyectos grandes.


Varios años más tarde ...

RUnit y svUnit todavía no tienen los controles de mensajes y avisos, ni prueba de almacenamiento en caché, y no parecen estar bajo un gran desarrollo, por lo testthat debería ser su primera opción para nuevos proyectos. Puede convertir las pruebas RUnit en testthat usando mi paquete runittotestthat.

+1

" svUnit "también puede proporcionar un resultado que se entiende por la herramienta de integración continua [Hudson] (https://hudson.dev.java.net/). – mariotomo

+1

Ahora también está ** [unitizer] (https://github.com/brodieG/unitizer) **, aunque solo está en beta y github solamente ('devtools :: install_github (" brodieg/unitizer ")'). Es bastante diferente de los marcos existentes ya que almacena expresiones de prueba y los objetos resultantes para permitir comprobaciones de regresión fáciles. – BrodieG

6

aquí hay algunas cosas que he encontrado en Google.

Este tema se discutió en la lista de correo here, que menciona los paquetes anteriormente. Parece que RUnit y svunit ejecutarán el mismo código de prueba, pero Runit también tiene funciones de seguimiento y cobertura de códigos.

Una comparación de los dos es también en el R wiki en http://rwiki.sciviews.org/doku.php?id=developers:runit

+0

sobre la "cobertura de código" ofrecida por RUnit, verifique [este mensaje] (https://sourceforge.net/mailarchive/message.php?msg_name=474C639E.5080900%40epigenomics.com). es de noviembre de 2007 pero aún se mantiene. – mariotomo

+0

@mariotomo: ese enlace ya no parece funcionar. ¿Algún comentario o actualización? – Iterator

+0

mejor que un enlace directo, esta es la forma de encontrar el mensaje. está en la lista de correo 'runit-help' del proyecto' runit' en sourceforge.net. es por el autor de 'runit' y timestamped 2007-11-27 18:36.»Una vez dicho esto, tenga en cuenta que el mecanismo de inspección no se usa y prueba en gran medida, ya que es poco práctico ya que solo se puede rastrear una llamada de función a la vez. Esto está lejos de ser una herramienta de cobertura de código. « – mariotomo

Cuestiones relacionadas