为什么 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
函数在测试中使用。当然,在附上testthat
devtools::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_
.
开头
我正在开发一个包(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
函数在测试中使用。当然,在附上testthat
devtools::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_
.