2010-03-30 45 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

相关问题