6

我想测试已安装的软件包,但这会返回错误。

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

test_package ( source here ) 返回此错误,因为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"  

如何安装软件包以使其测试目录保持存在?

4

2 回答 2

7

如果作者选择不将测试放在inst/目录中,那么它们将不会与包一起安装,并且您无法通过已安装的包运行测试。

因此,除了修改源包并重新安装之外,您无能为力。但此时,您不妨只在源代码包上运行测试。

于 2016-04-12T13:42:42.957 回答
4

您可以使用

tools::testInstalledPackage("package")

但我认为它只有在测试在 inst/ 时才有效

还有

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

还要使用包安装测试。但如果测试在 inst/ 中也可以工作

所以最好下载源包并运行:

devtools::test()
于 2016-06-06T02:16:25.040 回答