gpt4 book ai didi

运行 R CMD 检查时未找到 R 包测试

转载 作者:行者123 更新时间:2023-12-04 12:19:35 25 4
gpt4 key购买 nike

我正在使用 testthat为我的 R 包编写测试的包。我已按照 http://r-pkgs.had.co.nz/tests.html 中的说明进行操作(我相信)。我用了

devtools::use_testthat()

设置测试骨架。我在 tests/testthat 中创建了一个测试文件并且文件名以 test 开头.当我跑 devtools::test()或 Ctrl+Shift+T 在 RStudio 中,测试成功运行,但是当我运行时 R CMD check或 Ctrl+Shift+E, testthat找不到我的包裹。我收到错误
> library(testthat)
>
> test_check("foo")
Loading required package: foo
Error in loadNamespace(name) : there is no package called 'foo'
Calls: test_check ... tryCatch -> tryCatchList -> tryCatchOne -> <Anonymous>
In addition: Warning message:
In library(package, lib.loc = lib.loc, character.only = TRUE, logical.return = TRUE, :
there is no package called 'foo'
Execution halted

我确实通过设置 R_LIBS_SITE 来修改我的库路径在我的 .Renviron文件。我怀疑运行 R CMD check 时没有读取此信息,但我不认为它应该有所作为。

当我跑 devtools::check()从 RStudio 控制台,它成功完成(包括测试),但是在 RStudio 中运行 Check 失败。

我添加了一些调试到 testthat.R打印出来 .libPaths()和其他位:
> library(testthat)
> .libPaths()
[1] "C:/Users/timk/AppData/Local/Temp/Rtmp841w0b/RLIBS_1790551706"
[2] "C:/Program Files/R/R-3.2.2/library"
> list.files(.libPaths()[1])
[1] "KernSmooth" "MASS" "Matrix" "boot" "class"
[6] "cluster" "crayon" "digest" "foo" "foreign"
[11] "lattice" "magrittr" "memoise" "mgcv" "nlme"
[16] "nnet" "praise" "rpart" "spatial" "stringi"
[21] "stringr" "survival" "testthat"
> list.files(file.path(.libPaths()[1], "foo"))
character(0)
> list.files(file.path(.libPaths()[1], "testthat"))
[1] "CITATION" "DESCRIPTION" "INDEX" "LICENSE" "MD5"
[6] "Meta" "NAMESPACE" "R" "help" "html"
[11] "libs"

可以看到在临时库中创建了包目录,但是包是空的。将其与 testthat 的文件列表进行比较.

我也试过下载另一个使用 testthat 的包。 ( anonymizer ) 并收到相同的错误。
sessionInfo() :
R version 3.2.2 (2015-08-14)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 8 x64 (build 9200)

locale:
[1] LC_COLLATE=English_Australia.1252 LC_CTYPE=English_Australia.1252 LC_MONETARY=English_Australia.1252
[4] LC_NUMERIC=C LC_TIME=English_Australia.1252

attached base packages:
[1] stats graphics grDevices utils datasets methods base

other attached packages:
[1] foo_0.1 testthat_0.11.0

loaded via a namespace (and not attached):
[1] magrittr_1.5 tools_3.2.2 roxygen2_5.0.0 Rcpp_0.12.1 crayon_1.3.1 memoise_0.2.1 stringi_1.0-1
[8] stringr_1.0.0 digest_0.6.8 devtools_1.9.1

最佳答案

尝试添加 testthatSuggests:领域DESCRIPTION . R CMD CHECK 只会在检查期间将该文件中提到的包放入范围。

关于运行 R CMD 检查时未找到 R 包测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33820432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com