0

我正在尝试遵循BioConductor RUnit 指南。我遵循了最小设置,所以我有:

Suggests: RUnit, BiocGenerics在描述中

BiocGenerics:::testPackage("MyPackage")在 MyPackage/tests/runTests.R

和一些 test_XXX.R 文件MyPackage/inst/unitTests/

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

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)
4

2 回答 2

0

我不知道这方面的 BioC 指南,但我有许多 CRAN 包,它们使用 Martin Maechler 最初为一些 Rmetrics 包开发的方案。

它在此R Wiki 帖子中进行了描述,您可以查看我在 RcppArmadillo 或 RcppGSL 或其他一些包中的变体。密钥通常是一个文件tests/doRUnit.R,该文件进行必要的旋转以从源代码或已安装的包运行。

于 2013-01-18T16:41:59.697 回答
0

问题解决了。

这是故事:

在我的包裹中,我用这一行放置了一个 .Rinstignore 文件:

test/* 

我期待 glob 风格的匹配(如 .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 解决了这个问题。

于 2013-01-21T14:52:37.453 回答