devtools test()返回'Loading [package]测试[package] NULL'

时间:2013-04-08 10:31:34

标签: r unit-testing devtools

我是R的新手,我正在尝试开发一个示例包,其中包含文档,单元测试等,以便我自己和公司中的其他人可以参考它以获得最佳实践。

考虑到这一点,我有一个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结构一致的tests文件夹中)

context("Basic functionality")

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

})

然后我以dev模式运行test()并获取

Loading Example
Testing Example
NULL

我尝试过test_dir(“/ tests /”)并返回一个空的控制台行然后继续。

我已经尝试了各种各样的期望,看看是否是问题,但都返回相同的控制台输出。我已经通过将其加载到我的工作区并执行它来验证该功能是否正常工作。

我确信我在这里做了一些非常愚蠢和明显的事情,有人可以告诉我我出错的地方吗?

提前致谢, 斯蒂芬

1 个答案:

答案 0 :(得分: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>")