我正在处理一个包(this one),我根据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()
之后,
为什么devtools::document()
会查看/tests
文件夹?它不应该只记录/R
文件夹中的功能吗?
答案 0 :(得分:0)
devtools::document()
是roxygen2::roxygenize
的包装器。如果您阅读后者的文档,它会说:
请注意,roxygen2是一个动态文档系统:它通过检查包中的加载对象来使用。这意味着您必须能够加载包以便记录它。
还有一个论点load_code
说:
用于加载包目录中所有R代码的函数。它通过包的路径调用,它应该返回一个包含所有源代码的环境。
因此,看起来它正在读取所有.R
个文件。但是,我觉得它会跳过名称中以test_
开头的所有.R文件(否则我会看到我的包也会中断)。我认为问题在于您的helper_db.R
文件,其中您在不以testthat
开头的文件中使用test_
个函数。