为什么 testthat 中的 helper 文件来源两次

Why is helper file in testthat sourced twice

我 运行 在测试中使用 uuid 时遇到麻烦,因为帮助程序文件被获取了两次。为什么会这样?有没有办法避免二次采购?

对于可重现的例子,只需创建一个新包,将名为 "helper-data.R" 的文件放入 /tests/testhat/ 中,内容如下

if (!exists("test_ind")) {
  test_ind <- 1
  print(paste0("test_ind = ", test_ind))
  test_ind <- test_ind + 1
} else {
  print(paste0("test_ind = ", test_ind))
  test_ind <- test_ind + 1
}

并在 /tests/testhat/ 中创建一个文件 "test-1.R",并进行以下空测试

context("test1")
test_that("test1", {
  # expect_equal(1, 1)
})

你会看到 test_ind 最后是 2。 我找到了 this link,但我看不出如何解决我的问题。

更新:github-testthat

上创建问题

我刚刚收到一条消息,说这已在 dev-version on Github 中解决。