我想使用testthat
包进行单元测试,但是似乎无法与rms
包正常配合。以下是示例:
library(rms)
set.seed(10)
ds <- data.frame(
ftime = rexp(200),
fstatus = sample(0:1,200,replace=TRUE),
x1 = runif(200),
x2 = runif(200),
x3 = factor(sample(LETTERS[1:3], size=200, replace=TRUE)))
ddist <- datadist(ds)
options(datadist="ddist")
s <- Surv(ds$ftime, ds$fstatus == 1)
fit <- cph(s ~ x1 + x2 + x3, data=ds)
返回以下错误:
在Design(eval.parent(m))中出现错误:选项(datadist=)未找到数据集ddist
即使print(ddist)能正常工作并且options("datadist")返回正确的变量,仍然会出现这种情况。 那么,testthat
是否有引起错误的不同变量范围?
更新
我通过在我的软件包目录(Eclipse StatET)中启动R控制台来运行testthat:
library(testthat)
test_dir("inst/tests")
q()
同样的错误也会在R CMD check --as-cran命令中出现。
testthat
版本为0.7,evaluate
版本为0.4.2(并重新测试了evaluate
0.4.3)。也许这是由于常规路径被StatET劫持的问题?我不知道你所说的“使用相同的错误”是什么意思:R CMD check --as-cran
?那是完整的命令行输入吗(当我输入它时出现了错误,但与rms
无关)? - IRTFM