簡體   English   中英

如何使用testthat測試已安裝的軟件包?

[英]How to test an installed package with testthat?

我想測試一個已安裝的軟件包,但這會返回錯誤。

library(testthat)
test_package("testthat")
# Error: No tests found for testthat

由於system.file("tests", package = package)為空system.file("tests", package = package)因此system.file("tests", package = package) 此處的源 )返回此錯誤。 實際上,安裝的軟件包中沒有tests目錄。

list.dirs(system.file("", package = "testthat"))
# [1] "/home/paul/R/x86_64-pc-linux-gnu-library/3.2/testthat/"     
# [2] "/home/paul/R/x86_64-pc-linux-gnu-library/3.2/testthat//help"
# [3] "/home/paul/R/x86_64-pc-linux-gnu-library/3.2/testthat//html"
# [4] "/home/paul/R/x86_64-pc-linux-gnu-library/3.2/testthat//libs"
# [5] "/home/paul/R/x86_64-pc-linux-gnu-library/3.2/testthat//Meta"
# [6] "/home/paul/R/x86_64-pc-linux-gnu-library/3.2/testthat//R"  

如何安裝軟件包,使其測試目錄仍然存在?

如果作者選擇不將測試放在inst/目錄中,那么這些測試包將不會與軟件包一起安裝,並且您無法通過已安裝的軟件包運行測試。

因此,除了修改源程序包並重新安裝之外,您無能為力。 但是到那時,您最好只對源包運行測試。

您可以使用

tools::testInstalledPackage("package")

但是我認為只有在inst /

也有

install.packages("testthat", INSTALL_opts = "--install-tests")

還將測試與軟件包一起安裝。 但是如果test在inst /

因此,最好下載源代碼包並運行:

devtools::test()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM