【发布时间】:2021-07-05 12:57:38
【问题描述】:
我正在尝试使用带有 testthat 的单元测试来调试问题。如果手动运行代码运行良好,但似乎在运行test() 时,foreach 内的工作人员似乎无法访问我正在测试的包内的包或函数。代码非常复杂,所以我没有一个很好的工作示例,但这里是结构的概要:
tests/testthat 中的单元测试:
test_that("dataset runs successful", {
expect_snapshot_output(myFunc(dataset, params))
})
MyFunc 调用另一个 func,并在该 func 内部创建工作人员来运行一些代码:
final_out <- foreach(i = 1:nrow(data),
.combine = c,
.export = c("func1", "func2", "params"),
.packages = c("fields", "dplyr")) %dopar% {
output = func1(stuff)
more = func2(stuff)
out = rbind(output, more)
return (out)
}
工人似乎无法访问func1、func2 等。
我尝试将包的名称添加到这一行的包中,但它也不起作用。
有什么想法吗? 正如我所提到的,这只是尝试运行单元测试时的一个问题,我怀疑它与我正在测试的包的加载方式有关?
【问题讨论】:
标签: r unit-testing foreach testthat