R开发TDD(RUnit)生物导体封装

时间:2013-01-18 16:25:18

标签: r package runit

我正在尝试关注BioConductor RUnit guidelines。 我遵循了最小化的设置,所以我有:

描述中的

Suggests: RUnit, BiocGenerics

MyPackage / tests / runTests.R中的

BiocGenerics:::testPackage("MyPackage")

以及MyPackage/inst/unitTests/

中的一些test_XXX.R文件

如果我运行单个测试文件:

library(RUnit)
source("LIBRARY FILES")
source("MyPackage/inst/unitTests/test_getKeywordValue.R")
test_getKeywordValue()

测试运行(并且在需要失败时失败),但是如果我运行

R CMD check MyPackage

命令说:

* checking tests ...
  Running ‘runTests.R’
 OK

但是不要在MyPackage/inst/unitTests目录中运行我的测试...

我错过了什么?

Platform: x86_64-apple-darwin9.8.0  
R version 2.15.2 (2012-10-26)

2 个答案:

答案 0 :(得分:0)

我不知道BioC的指导方针,但我有一些CRAN软件包,它们使用Martin Maechler首先为一些Rmetrics软件包开发的方案。

R Wiki post中对此进行了描述,您可以在RcppArmadillo或RcppGSL或其他一些软件包中查看我的变体。密钥通常是文件tests/doRUnit.R,它可以从源或已安装的包中运行必要的透视。

答案 1 :(得分:0)

问题解决了。

以下是故事:

我的包我用这一行输了一个.Rinstignore文件:

test/* 

我期待全局式匹配(比如.gitignore),而是RShowDoc("R-exts")说:

.Rinstignore执行perl风格的正则表达式匹配。

所以,我的规则test/*被R解释为:

Ignore all files starting with test followed by 0 or more '/' 

(部分/ *被解释为匹配零或更多/字符)

使用grep进行快速检查,了解其工作原理:

grep("test/*", "inst/unitTests/test_bar.R",perl=TRUE)
[1] 1

删除行

test/* 
<。>来自.Rinstignore解决了这个问题。