我有一系列的单元测试可以测试一个大对象(下面的MWE中为y
)。我在y
中构建了testthat.R
,如果我运行R CMD check
则测试通过,但如果我运行devtools::test()
则不会。
如何确保devtools::test()
在正确的环境中运行测试?或者,什么是使对象可用于所有测试的规范方法?
https://github.com/HughParsonage/testGlobalEnv
./测试/ testthat.R
library(testthat)
library(testGlobalEnv)
y <- 1:5
test_check("testGlobalEnv")
./ R / adder.R
#' Adds numbers
#' @param x A vector of numbers
#' @export
adder <- function(x){
sum(x)
}
./测试/ test_adder.R
test_that("adder", {
expect_equal(adder(y), 15)
})
R CMD check
显示测试通过;但是,运行devtools::test()
:
1
Failed -------------------------------------------------------------------------------------------------------------------
1. Error: adder (@test_adder.R#2) ----------------------------------------------------------------------------------------
object 'y' not found
1: expect_equal(adder(y), 15) at C:\Users\Hugh Parsonage\Documents\Github\testGlobalEnv/tests/testthat/test_adder.R:2
2: compare(object, expected, ...)
3: adder(y)
答案 0 :(得分:1)
关于“使对象可用于所有测试的规范方法是什么”的问题:只需将您的共享数据,计算......放在/test/testthat/helper-mytitle.R
中,它就可用于所有测试。