चलाते समय नहीं मिले हैं, मैं अपने आर पैकेज के लिए परीक्षण लिखने के लिए testthat
पैकेज का उपयोग कर रहा हूं। मैंने http://r-pkgs.had.co.nz/tests.html (मुझे विश्वास है) पर निर्देशों का पालन किया है। मैंनेआर पैकेज परीक्षण आरएमडी चेक
devtools::use_testthat()
परीक्षण कंकाल सेट अप करने के लिए उपयोग किया। मैंने tests/testthat
में एक परीक्षण फ़ाइल बनाई है और फ़ाइल नाम test
से शुरू होता है। जब मैं devtools::test()
या RStudio में Ctrl + Shift + T चलाता हूं, तो परीक्षण सफलतापूर्वक चलते हैं, हालांकि जब मैं 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
मैं अपने .Renviron
फ़ाइल में R_LIBS_SITE
की स्थापना करके मेरी लाइब्रेरी पथ को संशोधित कर मिलता है। मुझे संदेह है कि R CMD check
चलाते समय यह पढ़ा नहीं जा रहा है, लेकिन मुझे नहीं लगता कि इससे कोई फर्क पड़ता है।
जब मैं RStudio कंसोल से devtools::check()
चलाता हूं, तो यह सफलतापूर्वक (परीक्षण सहित) पूरा करता है, हालांकि RStudio में जांच चलाना विफल रहता है।
मैं बाहर .libPaths()
और अन्य बिट्स मुद्रित करने के लिए testthat.R
करने के लिए कुछ डिबगिंग कहा:
> 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
कुछ दिन पहले मैं 'adegenet' की शाखा पर एक चेक चला रहा था और सभी नरक टूट गए। उपयोगकर्ता पर्यावरण पथ में 'R_LIBS_USER' जोड़ने के बाद, चीजें उठाई गईं। आपका 'लिबपाथ()' क्या कहता है? –
एक अच्छा सवाल है। मैंने '.libPaths()' और अस्थायी लाइब्रेरी की सामग्री दिखाने के लिए आउटपुट जोड़ा है। पैकेज निर्देशिका बनाई जा रही है, लेकिन यह खाली है। –
क्या आपने उपयोगकर्ता वातावरण में 'R_LIB_USER' जोड़ने या पहले (अस्थायी) फ़ोल्डर को हटाने का प्रयास किया है? –