如何使用R中的testthat测试文件夹的存在

时间:2013-04-22 15:00:07

标签: r testthat

我有一个功能,可以为我的工作流程的其余部分设置一些文件夹

library(testthat)

analysisFolderCreation<-function(projectTitle=NULL,Dated=FALSE,destPath=getwd(),SETWD=FALSE){
  stopifnot(length(projectTitle)>0,is.character(projectTitle),is.logical(Dated),is.logical(SETWD))

  # scrub any characters that might cause trouble
  projectTitle<-gsub("[[:space:]]|[[:punct:]]","",projectTitle)

  rootFolder<-file.path(destPath,projectTitle)
  executionFolder<-file.path(rootFolder,if (Dated) format(Sys.Date(),"%Y%m%d"))

  subfolders<-c("rawdata","intermediates","reuse","log","scripts","results")

  dir.create(path=executionFolder, recursive=TRUE)
  sapply(file.path(executionFolder,subfolders),dir.create)
  if(Setwd) setwd(executionFolder)

}

我正在尝试对其进行单元测试,我的错误测试工作正常:

test_that("analysisFolderCreation: Given incorrect inputs, error is thrown",
{
  # scenario: No arguments provided
  expect_that(analysisFolderCreation(),throws_error())
})

但是我的成功测试,不要......

 test_that("analysisFolderCreation: Given correct inputs the function performs correctly",
 {
   # scenario: One argument provided - new project name
   analysisFolderCreation(projectTitle="unittest")
   expect_that(file.exists(file.path(getwd(),"unittest","log")),
               is_true())
 }

的错误
  1. 错误:analysisFolderCreation:给定正确的输入,函数正确执行------------------------------------ --------------------------- 找不到功能“analysisFolderCreation”
  2. 当我检查文件夹是否存在时,我不确定如何以期望格式对其进行测试,其中包含函数analysisFolderCreation实际上在其中。

    我正在dev_mode()中运行并使用test_file()

    显式执行测试文件

    是否有人能够提供一种重写测试工作方式,或提供存在检查预期的方法?

1 个答案:

答案 0 :(得分:1)

问题似乎是使用test_file()。在整个单元测试套件中使用test()不需要在工作空间中创建函数,这与test_file()不同。