2013-04-08 61 views
1

我對R相對較新,並且正在嘗試開發一個包含文檔,單元測試等的示例包,以使自己和其他人公司參考它的最佳實踐。devtools測試()返回'正在加載[包]測試[包] NULL'

考慮到這一點,我的R函數保存到封裝結構中的R文件夾(RStudio創建,在一個git分支)

#' Loads the typical example for a specific modelling problem 
#' 
#' @keywords helper dataset logistic 
#' 
#' @param purpose Provide the type of modelling you're looking to do 
#' @return dataset A dataset should be added to the workspace 
#' 
#' @examples 
#' relevantTestDataset(purpose="logistic") 
#' relevantTestDataset("logistic") 
#' 
#' @export 


relevantTestDataset<-function(purpose) 
{ 

    if (purpose=="logistic") 
    { 
    loadedPackage<-"caret" 
    loadedData<-c("GermanCredit") 
     } 

    data(list=loadedData,package=loadedPackage) 
} 

我已經創建了下面的試驗(保存到一試驗在與stringr結構線)

context("Basic functionality") 

test_that("a dataset is loaded up for each expected model type",{ 
    expect_that(relevantTestDataset("a"),throws_error()) 

}) 

我然後在dev的模式下運行的測試(),並獲得文件夾

Loading Example 
Testing Example 
NULL 

我試過test_dir(「/ tests /」),然後返回一個空的控制檯行,然後繼續前進。

我試過各種各樣的期望,看看是否是這個問題,但都返回相同的控制檯輸出。我已經驗證該函數通過將其加載到我的工作區並執行它來工作。

我確定我在做一些完全愚蠢和顯而易見的事情,請問有人可以告訴我我要去哪裏嗎?

由於提前, 斯蒂芬

+0

您的測試應該在〜/安裝/測試/,而且應該有一個在〜/測試文件與'''庫(testthat) 庫(rspear) test_package(「rspear」)''' – EDi 2013-04-08 12:27:14

+0

非常好,非常感謝!將它們移動到inst/tests並運行test()工作。 – 2013-04-08 12:45:58

+0

我添加了我的評論作爲答案。如果你喜歡我的回答,你可以將其標記爲已接受。 – EDi 2013-04-08 13:55:33

回答

1

測試應在~inst/tests/

例如:

context("Basic functionality") 

test_that("a dataset is loaded up for each expected model type",{ 
    expect_that(relevantTestDataset("a"),throws_error()) 
}) 

應該是在一個文件中~inst/tests/test1.R

而且應該有一個文件~tests/run-all.R

library(testthat) 
library(<yourpackage>) 
test_package("<yourpackage>")