2010-03-30 11 views
45

R to język programowania statystyk. Część R jest użyciem pakietów, które same są napisane w języku R. Programowanie najlepszych praktyk obejmuje korzystanie z testów jednostkowych w celu przetestowania funkcji w tych pakietach, podczas gdy są one pisane i kiedy są używane.Jaki jest obecny stan obsługi testów jednostkowych w języku R

Zdaję sobie sprawę z kilku pakietów dla testów jednostkowych w R, ponieważ są

Jestem zainteresowany, aby wiedzieć;

Czy są tam jakieś inne paczki? Doświadczenia ludzi, czy te pakiety wyróżniają się na różne sposoby? Jaki jest obecny stan techniki w testowaniu jednostkowym dla R?

Odpowiedz

30

testów jednostkowych wydaje się być mniej lub bardziej Problem rozwiązany, więc wszystkie trzy pakiety będą prawdopodobnie odpowiednie dla Twoich potrzeb. Istnieją jednak subtelne różnice między nimi:

RUnit jest oparty na Xunit i jako taki jest łatwy do zrozumienia, jeśli używałeś jego wersji z innych języków.

svUnit używa tych samych testów co RUnit, ale zawiera graficzny interfejs użytkownika, który pomaga w interaktywnym użyciu.

testthat nie jest kompatybilny z żadną z nich, ale zawiera wiele takich samych funkcji i może sprawdzać, aby wykonywać tylko testy na plikach, które się nie zmieniły, co jest przydatne przy testowaniu dużych projektów.


Kilka lat później ...

RUnit i svUnit wciąż nie ma kontroli dla komunikatów i ostrzeżeń, ani buforowania testowym, i nie wydaje się być pod wielkim rozwoju, tak testthat powinien być twoim pierwszym wyborem dla nowych projektów. Możesz przetworzyć testy RUnit na testy testthat przy użyciu mojego pakietu runittotestthat.

+1

' svUnit' może również dostarczyć dane wyjściowe rozumiane przez narzędzie do ciągłej integracji [Hudson] (https://hudson.dev.java.net/). – mariotomo

+1

Istnieje teraz również ** [unitizer] (https://github.com/brodieG/unitizer) **, ale wciąż tylko w wersji beta i github ('devtools :: install_github (" brodieg/unitizer ")'). Różni się on od istniejących struktur, ponieważ przechowuje wyrażenia testowe i obiekty wynikowe w celu umożliwienia łatwej weryfikacji regresji. – BrodieG

6

Oto kilka rzeczy, które znalazłem w Google.

Ten temat został omówiony na liście mailingowej here, która wspomniała powyższe pakiety. Wygląda na to, że RUnit i svunit wykonają ten sam kod testowy, ale Runit ma także funkcje śledzenia i kodowania.

Porównanie dwóch jest również na wiki R przy http://rwiki.sciviews.org/doku.php?id=developers:runit

+0

o "zasięgu kodu" oferowanym przez RUnit, sprawdź [tę wiadomość] (https://sourceforge.net/mailarchive/message.php?msg_name=474C639E.5080900%40epigenomics.com). jest od listopada 2007, ale wciąż stoi. – mariotomo

+0

@mariotomo: ten link już nie działa. Wszelkie komentarze lub aktualizacje? – Iterator

+0

lepiej niż bezpośredni link, jest to sposób na znalezienie wiadomości. znajduje się na liście dyskusyjnej 'runit-help' projektu' runit' w sourceforge.net. to autor "runit" i znacznik czasu 2007-11-27 18:36.»Należy jednak zauważyć, że mechanizm inspekcji nie jest intensywnie wykorzystywany i testowany, ponieważ jest raczej niepraktyczny, ponieważ można śledzić tylko jedno wywołanie funkcji. Nie jest to narzędzie do objęcia kodu. " – mariotomo

Powiązane problemy