R paketimin testlerini yazmak için testthat
paketini kullanıyorum. Talimatları izledim http://r-pkgs.had.co.nz/tests.html (inanıyorum). Test iskeletini kurmak içinR CMD'yi denetlerken R paket testleri bulunamadı
'u kullandım. tests/testthat
'da bir test dosyası oluşturdum ve dosya adı test
ile başlıyor. RStudio'da devtools::test()
veya Ctrl + Shift + T çalıştırdığımda, testler başarıyla çalıştırılır, ancak ben R CMD check
veya Ctrl + Shift + E, testthat
paketimi bulamıyorum. Ben hatayı
> 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
benim .Renviron
dosyada R_LIBS_SITE
ayarlayarak Kütüphanemin yolunu değiştirmek yapmak olsun. Bunun R CMD check
'u çalıştırırken okunmadığından şüpheleniyorum, ancak bunun bir fark yaratması gerektiğini düşünmüyorum.
RStudio Konsolundan devtools::check()
'u çalıştırdığımda, (tamamlanan testler dahil), ancak RStudio'da Check başarısızken başarılı bir şekilde tamamlanır.
.libPaths()
ve diğer bit yazdırmak için
testthat.R
bazı hata ayıklama ekledi: Paketin dizin geçici kütüphanede oluşturulduğunu görebilirsiniz
> 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"
Ancak paket boş. testthat
dosya listesiyle karşılaştırın.
Ayrıca testthat
(anonymizer) kullanan başka bir paketi indirmeyi denedim ve aynı hatayı alıyorum.
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
Birkaç gün önce 'adegenet'in bir dalı üzerinde bir kontrol gerçekleştiriyordum ve tüm cehennem kaybedildi. Kullanıcı çevre yoluna 'R_LIBS_USER 'ekledikten sonra işler başladı. '.libPaths()' iniz ne diyor? –
Güzel bir soru. .libPaths() 'ı ve geçici kütüphanenin içeriğini göstermek için çıktı ekledim. Paket dizini oluşturuluyor, ancak boş. –
Kullanıcı ortamına 'R_LIB_USER 'eklemeyi veya ilk (geçici) klasörü kaldırmayı denediniz mi? –