为什么 devtools::document() 尝试记录测试?

Why does devtools::document() try to document tests?

我正在开发一个包(this one) where I set up my tests according to the testthat workflow。这包括在 ./testthat/testthat/ 文件夹和 ./testthat/testthat.R 文件中进行测试,如下所示:

library(testthat)
library(rpostgisLT)
test_check("rpostgisLT")

所有测试都需要附加 testthat 包(因此我没有使用 testthat::function 引用。

在重新启动 R 之后(没有附加 testthat)我尝试 运行 devtools::document() 但它中断了,因为它没有找到我想要的 testthat 函数在测试中使用。当然,在附上testthatdevtools::document()运行s之后。

为什么 devtools::document() 查看 /tests 文件夹?它不应该只在 /R 文件夹中记录函数吗?

devtools::document()roxygen2::roxygenize 的包装器。如果您阅读后者的文档,它会说:

Note that roxygen2 is a dynamic documentation system: it works using by inspecting loaded objects in the package. This means that you must be able to load the package in order to document it.

还有一个参数 load_code 说:

A function used to load all the R code in the package directory. It is called with the path to the package, and it should return an environment containing all the sourced code.

因此,看起来它正在读取所有 .R 个文件。但是,我感觉它会跳过名称中以 test_ 开头的所有 .R 文件(否则我也会看到我的包损坏)。我认为问题出在您的 helper_db.R 文件中,您在其中使用 testthat 函数的文件不是以 test_.

开头