2015-11-20 19 views
6

चलाते समय नहीं मिले हैं, मैं अपने आर पैकेज के लिए परीक्षण लिखने के लिए 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 
+0

कुछ दिन पहले मैं 'adegenet' की शाखा पर एक चेक चला रहा था और सभी नरक टूट गए। उपयोगकर्ता पर्यावरण पथ में 'R_LIBS_USER' जोड़ने के बाद, चीजें उठाई गईं। आपका 'लिबपाथ()' क्या कहता है? –

+0

एक अच्छा सवाल है। मैंने '.libPaths()' और अस्थायी लाइब्रेरी की सामग्री दिखाने के लिए आउटपुट जोड़ा है। पैकेज निर्देशिका बनाई जा रही है, लेकिन यह खाली है। –

+0

क्या आपने उपयोगकर्ता वातावरण में 'R_LIB_USER' जोड़ने या पहले (अस्थायी) फ़ोल्डर को हटाने का प्रयास किया है? –

उत्तर

0

DESCRIPTION की Suggests: क्षेत्र में testthat जोड़ने का प्रयास करें। आर सीएमडी चेक केवल उस फाइल में उल्लिखित संकुल को चेक के दौरान रखेगा।

+0

'testthat' 'विवरण' में है। मुझे लगता है कि आर 'testthat' ढूंढने में सक्षम है लेकिन मेरा पैकेज नहीं ढूंढ पा रहा है, लेकिन केवल जब मैं RStudio शॉर्टकट का उपयोग करता हूं। अगर मैं इसे "हाथ से" चलाता हूं, तो परीक्षण पाए जाते हैं और दौड़ते हैं। –

+0

फिर शायद यह एक RStudio बग है जिसे उनके जीथ्यूब पर दायर किया जाना चाहिए। – lionel

0

आप लाइन

library(foo) 

अपने testthat फ़ाइल में भूल करने लगते हैं। अगर मैं कुछ renowned examples देखता हूं, तो वे इसे

संबंधित मुद्दे