我正在关注this question的提示,但我很不耐烦,我想更快地运行我的测试,而不必等待R CMD check src
之前调用的30多个检查{{} 1}}。
我认为我可以做的是为that R-wiki page中建议的checking tests
添加--standalone
选项,以便我可以独立于doRUnit.R
运行单元测试。< / p>
我将这些行添加到脚本中:
R CMD
通过此更改,脚本将独立于我调用脚本的目录找到 opt <- list(standalone=NULL)
if(require("getopt", quietly=TRUE)) {
## path to unit tests may be given on command line, in which case
## we also want to move the cwd to this script
opt <- getopt(matrix(c('standalone', 's', 0, "logical"),
ncol=4, byrow=TRUE))
if(!is.null(opt$standalone)) {
## switch the cwd to the dir of this script
args <- commandArgs()
script.name <- substring(args[substring(args, 1, 7)=="--file="], 8, 1000)
if(!is.null(script.name))
setwd(dirname(script.name))
}
}
个文件。
现在剩下的问题是test.*\.R
脚本加载已安装的库,它不会doRUnit.R
组成库的文件。
假设我想加载source()
目录中的每个文件,我该怎么做?
假设您有更好的测试架构(满足“快速”,“卸载”的要求),它是什么?
答案 0 :(得分:3)
您可能需要手动循环遍历R
目录中的文件和source()
目录,可能需要source(dir("/some/Path", pattern="*.R", full.names=TRUE)
之类的内容。
但我感觉R CMD INSTALL
做了一点点。使用已安装的代码可能会更好。直接运行您的单元测试,正如您所做的那样,以及维基页面建议,已经非常好了。所以没有更好的方案来自我。但请告诉我们。
编辑:另请注意,R 2.10.1为我们提供了加速R CMD INSTALL
的新选项:
2.10.1新功能
R CMD INSTALL有新选项--no-R, --no-libs, - no-data, - no-help, - no-demo, - no-exec和--no-inst禁止指定安装 包的一部分。这些是 用于特殊目的(例如 构建帮助页面数据库 没有完全安装所有 包)。
这也应该有所帮助。
答案 1 :(得分:0)
对脚本的进一步补充/更正。
我现在可以doRUnit.R --standalone
调用它
或由R CMD check
if(!is.null(script.name)) {
setwd(dirname(script.name))
path <- '../inst/RUnit/'
}
.
.
.
if (is.null(opt$standalone)) {
cat("\nRunning unit tests of installed library\n")
library(package=pkg, character.only=TRUE)
} else {
cat("\nRunning unit tests of uninstalled library\n")
source(dir("../R/", pattern=".*\\.R", full.names=TRUE))
}