devtools ::找不到测试对象

时间:2016-12-16 04:17:24

标签: r unit-testing devtools

我有一系列的单元测试可以测试一个大对象(下面的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)

1 个答案:

答案 0 :(得分:1)

关于“使对象可用于所有测试的规范方法是什么”的问题:只需将您的共享数据,计算......放在/test/testthat/helper-mytitle.R中,它就可用于所有测试。