【问题标题】:Location of tests file in an R packageR 包中测试文件的位置
【发布时间】:2020-11-02 00:37:18
【问题描述】:

如果我有 tests/testhat/testhat.Rdevtools::test() 会找到并运行它,但 covr:package_coverage()R CMD check 没有找到它。

如果我将其设置为 tests/testhat.Rdevtools::test() 不会找到它,但 covr:package_coverage()R CMD check 会找到它。

最好的方法是什么?

R 4.0.0;测试2.3.2;覆盖 3.5.0

【问题讨论】:

  • 您可以指定路径作为devtools::test() 的第一个参数。没有测试它,我的猜测是使用第二个目录结构。此外,从手册中:test()testthat::test_dir() 的快捷方式
  • 你试过用tests代替test吗?这是我通过usethis::use_testusethis::use_testthat 添加测试时自动获得的目录。
  • 对不起!我使用tests 文件夹作为父文件夹。我这里打错了。现在更正它。

标签: r r-package testthat covr


【解决方案1】:

test 文件夹的目录结构应如下所示:

.
├── testthat
│   ├── test-1.R
│   ├── test-2.R
│   ├── test-3.R
│   ├── test-4.R
│   └── test-5.R
└── testthat.R

testthat.R 包含

library(testthat)
library(mypackage)

test_check("mypackage")

这适用于R CMD checkcovrdevtools::check()

【讨论】:

  • 这有什么帮助?在 R CMD 检查或代码覆盖期间,testthat 文件夹中的所有测试都不会运行。
  • 也许测试有问题?结构就是那个。有关更多信息,请参阅r-pkgs.had.co.nz/tests.html 或在此处查看它是如何完成的:github.com/tidyverse/ggplot2/tree/master/tests/testthat
  • 啊!我知道了。在您链接的示例中,testthat.R 具有此代码 test_check("ggplot2"),我想它运行 testthat 文件夹中的所有单独测试。
猜你喜欢
  • 1970-01-01
  • 2019-07-16
  • 1970-01-01
  • 2016-08-07
  • 2020-09-21
  • 2015-02-11
  • 2011-12-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多