首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用testthat时,在foreach中加载包时出错

使用testthat时,在foreach中加载包时出错
EN

Stack Overflow用户
提问于 2021-04-10 00:10:01
回答 1查看 23关注 0票数 0

我正在尝试调试使用单元测试与测试的问题。如果手动运行,代码运行得很好,但是在运行test()时,foreach中的工作人员似乎无法访问我正在测试的包或包中的函数。代码非常复杂,所以我没有一个很好的工作示例,但下面是结构的大纲:

测试/测试中的单元测试:

代码语言:javascript
复制
test_that("dataset runs successful", {
  expect_snapshot_output(myFunc(dataset, params))
})

MyFunc调用另一个函数,并在该函数中创建工作程序来运行一些代码:

代码语言:javascript
复制
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)
}

工作人员似乎无法访问func1func2等。

我尝试将包的名称添加到此行中的包中,但也不起作用。

有什么想法吗?正如我所提到的,这只是运行单元测试时的一个问题,我怀疑这与我正在测试的包的加载方式有关?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-10 04:41:37

当工作进程启动时,它们不具有正常会话所具有的完整包集合;当测试在本地会话中运行时,将搜索路径中包的所有包名称传递给.packages参数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67024598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档