2017-08-21 31 views
1

我正在開發一個包(this one),其中我根據testthat workflow設置了測試。這包括如下我在./testthat/testthat/文件夾中的測試和./testthat/testthat.R文件:爲什麼devtools :: document()嘗試記錄測試?

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

所有的測試要求的testthat包附後(因此我沒有使用testthat::function參考

剛剛重新啓動後R(不附帶testthat)我嘗試運行devtools::document()但它打破,因爲它沒有找到testthat功能,我在測試中使用。當然,通過附加testthatdevtools::document()運行之後。

爲什麼devtools::document()查看/tests文件夾?它不應該只記錄/R文件夾中的功能嗎?

回答

0

devtools::document()roxygen2::roxygenize的包裝。如果您閱讀後者的文檔,它會說:

請注意,roxygen2是一個動態文檔系統:它通過檢查包中的加載對象來工作。這意味着您必須能夠加載包才能記錄它。

而且也有它說的參數load_code

用於裝載所有的R代碼包目錄的功能。它是通過包的路徑調用的,它應該返回包含所有源代碼的環境。

因此,它看起來像是讀取所有.R文件。不過,我有一種感覺,它會跳過名稱中以test_開頭的所有.R文件(否則,我會看到我的包也打破了)。我認爲問題在於您的helper_db.R文件,其中在不以test_開頭的文件中使用testthat函數。

+0

恩,謝謝,清除了事情。所以我只是沒有正確使用'document/roxygenize'。但是,如果它排除'test_'文件,則可能會跳過整個目錄。 –