devtools::test 未找到对象
devtools::test object not found
我有一系列针对大型对象进行测试的单元测试(下面 MWE 中的y
)。我在 testthat.R
中构造了 y
,如果我 运行 R CMD check
,测试通过,但如果我 运行 devtools::test()
,则测试不通过。
如何确保 devtools::test()
运行 在正确的环境中进行测试?或者使对象可用于所有测试的规范方法是什么?
https://github.com/HughParsonage/testGlobalEnv
./tests/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)
}
./tests/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)
对于问题"what is the canonical way to make an object available to all tests":只需将您的共享数据、计算...放入/test/testthat/helper-mytitle.R
,它将可用于所有测试。
我有一系列针对大型对象进行测试的单元测试(下面 MWE 中的y
)。我在 testthat.R
中构造了 y
,如果我 运行 R CMD check
,测试通过,但如果我 运行 devtools::test()
,则测试不通过。
如何确保 devtools::test()
运行 在正确的环境中进行测试?或者使对象可用于所有测试的规范方法是什么?
https://github.com/HughParsonage/testGlobalEnv
./tests/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)
}
./tests/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)
对于问题"what is the canonical way to make an object available to all tests":只需将您的共享数据、计算...放入/test/testthat/helper-mytitle.R
,它将可用于所有测试。