【问题标题】:devtools test() returning 'Loading [package] Testing [package] NULL'devtools test() 返回“正在加载 [包] 测试 [包] NULL”
【发布时间】:2013-04-08 10:31:34
【问题描述】:

我对 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 结构的测试文件夹)

context("Basic functionality")

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

})

然后我在开发模式下运行 test() 并得到

Loading Example
Testing Example
NULL

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

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

我确定我在这里做了一些完全愚蠢和明显的事情,有人能准确地告诉我哪里出错了吗?

提前致谢, 斯蒂芬

【问题讨论】:

  • 你的测试应该在~/inst/tests/中,而且在~/tests中应该有一个library(testthat) library(rspear) test_package("rspear")的文件
  • 太好了,非常感谢!将它们移动到 inst/tests 并运行 test() 有效。
  • 我添加了我的评论作为答案。如果您喜欢我的回答,可以将其标记为已接受。

标签: r unit-testing devtools


【解决方案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>")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-01
    • 2020-02-18
    • 2021-12-23
    • 1970-01-01
    • 2021-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多