Quel est l'état actuel de la prise en charge des tests unitaires dans le langage R

R est un langage de programmation statistique. Une partie de R est l'utilisation de Paquets, qui eux-mêmes sont écrits dans le langage R. Les meilleures pratiques de programmation incluent l'utilisation de tests unitaires pour tester les fonctions de ces paquets pendant leur écriture et leur utilisation.

Je suis au courant de quelques paquets pour les tests unitaires dans R, ceux-ci étant

Je suis intéressé à savoir;

Y a-t-il d'autres paquets ? Compte tenu de l'expérience des peuples, ces paquets excellent-ils à des choses différentes ? Quel est l'état actuel de l'art dans les tests unitaires pour R ?

45
demandé sur Jon Seigel 2010-03-30 22:02:07

2 réponses

Les tests unitaires semblent être plus ou moins un problème résolu, donc les trois paquets seront probablement adaptés à vos besoins. Il y a des différences subtiles entre eux cependant:

RUnit est basé sur xunit, et en tant que tel est facile à comprendre si vous avez utilisé des versions d'autres langues.

svUnit utilise les mêmes tests que RUnit, mais inclut une interface graphique pour aider à l'utilisation interactive.

testthat n'est pas compatible avec l'un ou l'autre, mais inclut à peu près les mêmes fonctionnalités et peut vérifier pour exécuter uniquement des tests sur des fichiers qui n'ont pas changé, ce qui est utile pour tester de grands projets.


Plusieurs années plus tard...

RUnit et svUnit toujours pas de contrôles pour les messages et les Avertissements, ni de mise en cache de test, et ne semblent pas être en cours de développement, donc testthat devrait être votre premier choix pour les nouveaux projets. Vous pouvez convertir RUnit tests en testthat tests en utilisant mon runittotestthat paquet.

30
répondu Richie Cotton 2016-10-06 05:59:40

Voici quelques choses que J'ai trouvées sur Google.

Ce sujet a été discuté sur la liste de diffusion ici qui mentionnait les paquets ci-dessus. Il semble que RUnit et svunit exécuteront le même code de test, mais Runit a également des fonctions de suivi et de couverture de code.

Une comparaison des deux est également sur le wiki R à http://rwiki.sciviews.org/doku.php?id=developers:runit

6
répondu PaulHurleyuk 2010-03-30 21:30:30