2010-03-30 114 views
45

R是一種統計編程語言。 R的一部分是使用Packages,它們都是用R語言編寫的。編程最佳實踐包括使用單元測試來測試這些軟件包在寫入和使用時的功能。什麼是R語言中單元測試支持的當前狀態

我知道了幾包爲R內的單元測試,這是

我想知道;

是否還有其他軟件包?根據各國人民的經驗,這些軟件包在不同的事情上表現出色嗎? R的單元測試的最新技術狀態如何?

回答

30

單元測試將R維基似乎或多或少解決的問題,因此,所有三個程序包將很可能足以滿足您的需求。他們之間有細微的差異,但他們:

RUnit是基於xunit,這樣很容易理解,如果你已經使用了其他語言的任何版本。

svUnit使用與RUnit相同的測試,但包含一個GUI以幫助交互式使用。

testthat與兩者都不兼容,但包含許多相同的功能,並且可以檢查只對未更改的文件執行測試,這對測試大型項目很有用。


若干年後...

RUnitsvUnit仍然沒有對消息和警告,也沒有測試緩存檢查,似乎沒有要承受很大的發展,所以testthat應該是您新項目的首選。您可以使用我的runittotestthat軟件包將RUnit測試轉換爲testthat測試。

+1

'svUnit'也可以提供持續集成工具[Hudson](https://hudson.dev.java.net/)所理解的輸出。 – mariotomo 2010-11-19 18:33:39

+1

現在還有** [unitizer](https://github.com/brodieG/unitizer)**,儘管它仍然只有beta和github('devtools :: install_github(「brodieg/unitizer」)')。它與現有的框架非常不同,因爲它存儲了測試表達式和生成的對象以允許簡單的迴歸檢查。 – BrodieG 2015-01-07 19:36:42

6

這裏是我從Google找到的一些東西。

本主題在郵件列表here中進行了討論,其中提到了上述軟件包。看起來RUnit和svunit會執行相同的測試代碼,但Runit也有跟蹤和代碼覆蓋功能。

兩個的比較也對在http://rwiki.sciviews.org/doku.php?id=developers:runit

+0

關於RUnit提供的「代碼覆蓋率」,請檢查[此消息](https://sourceforge.net/mailarchive/message.php?msg_name=474C639E.5080900%40epigenomics.com)。它從2007年11月份開始,但依然如此。 – mariotomo 2010-08-24 09:04:39

+0

@mariotomo:該鏈接似乎不再起作用。任何意見或更新? – Iterator 2011-08-20 16:42:05

+0

比直接鏈接更好,這是查找郵件的方式。它位於sourceforge.net中'runit'項目的'runit-help'郵件列表中。這是由'runit'的作者和時間戳2007-11-27 18:36。»儘管如此,請注意,檢查機制並未被大量使用和測試,因爲它是不切實際的,因爲一次只能調用一個函數。這遠不是一個代碼覆蓋工具。« – mariotomo 2011-09-01 09:48:00

相關問題