首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >devtools test()返回'Loading [package] Testing [package] NULL‘

devtools test()返回'Loading [package] Testing [package] NULL‘
EN

Stack Overflow用户
提问于 2013-04-08 18:31:34
回答 1查看 74关注 0票数 1

我对R比较陌生,正在尝试开发一个示例包,其中包含文档、单元测试等,以使我自己和公司中的其他人能够参考它作为最佳实践。

考虑到这一点,我将一个R函数保存到包结构的R文件夹中(由RStudio创建,位于git分支中)。

代码语言:javascript
运行
复制
#' 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结构一致的测试文件夹中)

代码语言:javascript
运行
复制
context("Basic functionality")

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

})

然后,我在dev模式下运行test()并获取

代码语言:javascript
运行
复制
Loading Example
Testing Example
NULL

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

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

我确信我在做一件非常愚蠢和明显的事情,有人能告诉我我到底错在哪里吗?

先谢谢你,斯蒂芬

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-08 21:54:45

您的测试应该在~inst/tests/中。

例如:

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
library(testthat) 
library(<yourpackage>) 
test_package("<yourpackage>")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15876888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档