我正在尝试调试使用单元测试与测试的问题。如果手动运行,代码运行得很好,但是在运行test()时,foreach中的工作人员似乎无法访问我正在测试的包或包中的函数。代码非常复杂,所以我没有一个很好的工作示例,但下面是结构的大纲:
测试/测试中的单元测试:
test_that("dataset runs successful", {
expect_snapshot_output(myFunc(dataset, params))
})MyFunc调用另一个函数,并在该函数中创建工作程序来运行一些代码:
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等。
我尝试将包的名称添加到此行中的包中,但也不起作用。
有什么想法吗?正如我所提到的,这只是运行单元测试时的一个问题,我怀疑这与我正在测试的包的加载方式有关?
发布于 2021-04-10 04:41:37
当工作进程启动时,它们不具有正常会话所具有的完整包集合;当测试在本地会话中运行时,将搜索路径中包的所有包名称传递给.packages参数。
https://stackoverflow.com/questions/67024598
复制相似问题