我有一个普通结构化的R项目,其中的test文件夹包含我所有的单元测试,用testthat
实现。
library(testthat)
library(MyPackage)
test_check("MyPackage")
现在,测试中使用的一些功能需要设置Sys.env
。为了避免在每个测试文件中手动设置它,我的期望是,当在test_check("MyPackage")
命令之前放置适当的行时,所有后续测试都可以查询系统变量。示例:
library(testthat)
library(MyPackage)
Sys.setenv("test123" = "test")
test_check("MyPackage")
在特定的测试文件中:
testthat::test_that("test os for testing", {
print(Sys.getenv("test123"))
os <- Sys.info()["sysname"]
testthat::expect_true(os %in% c("Windows", "Linux"))
})
当点击 “Test Package” 时,我看到print(Sys.getenv("test123"))
的输出是""
。所以我猜环境被重置了。还有其他方法吗?
1条答案
按热度按时间lo8azlld1#
我无法用一个简单的测试包重现报告的行为,运行R 4.3.0和testthat3.1.7。你的问题可能会被关闭,但我还是会分享这个包……
DESCRIPTION
:NAMESPACE
:R/addOne.R
:man/addOne.Rd
:tests/testthat.R
:tests/testthat/test-addOne.R
: