【问题标题】:Telling testthat to work on specific paths in a custom folder structure告诉 testthat 在自定义文件夹结构中的特定路径上工作
【发布时间】:2021-07-26 06:53:51
【问题描述】:

我在一家采用非正统文件夹组织方式的公司工作,我希望能够告诉 testthat 它应该在哪个文件夹中查找我的功能。 例如,使用如下文件结构:

.
├── data
│   ├── input
│   └── output
└── src
    ├── Ex
    ├── Py
    │   └── tests
    └── R
        └── tests

我想告诉testthat,我所有的测试都在./src/R/tests,我的代码在./src/R/。有没有办法指定这些路径,以便包知道在哪里查找文件?

【问题讨论】:

    标签: r testthat


    【解决方案1】:

    您可以source 测试和使用test_dir 的功能:

    library(testthat)
    
    path <- 'src/R'
    files <- file.path(path,list.files(path,pattern='\\.R$'))
    lapply(files,source)
    
    testresults <- test_dir('src/R/tests/testthat',
                     reporter = "list",
                     env = test_env(),
                     start_end_reporter = TRUE,
                     load_helpers = TRUE,
                     stop_on_failure = FALSE)
    

    【讨论】:

    • 这个test_dir() 没有运行测试,老实说它看起来好像什么也没做。它返回一个空列表。
    • 我每天使用自动任务运行它,AFAIK 它运行良好。您确定测试目录的绝对路径吗?您可以检查file.path 是否看到其中的文件。
    • 一个可能的误解:它只返回列表中的失败测试
    • 哦,路径错误,我用src/R/tests/testthat 替换了你的建议,它运行了所有测试。最后一个问题:我的测试可以访问其他文件吗?因为我有一些函数依赖于项目其他文件夹中存储的数据。
    • 您必须从其他文件夹中获取其他功能。一种替代方法是开发package,但这似乎不符合您的要求,因为 R 文件必须在 \R
    猜你喜欢
    • 2018-01-13
    • 2020-05-14
    • 2020-10-01
    • 2019-07-08
    • 1970-01-01
    • 2021-12-12
    • 1970-01-01
    • 2017-11-04
    • 1970-01-01
    相关资源
    最近更新 更多