区别 Ctrl + Shift + T 和 devtools::test()

Difference Ctrl + Shift + T and devtools::test()

这两个命令有什么区别?从 RStudio 文档中说

因此两者应该是相同的。但是,当我运行下面的测试

testthat::test_that("create_initial_tourplan works", {
  vrp <- package1::createdata()
  dist_mat <- package::calculate_dist_mat(vrp$locations)
  package2::function2(vrp$locations)
})

有选项

  1. 运行 逐行测试 => OK
  2. Ctrl + Shift + T => 错误:'vrp' 未找到
  3. devtools::test() => 确定

有人有想法吗? 显然,它是不可复制的,所以我无法提供更多信息(除非有人知道我应该提供什么)

如果您查看包的设置(构建 > 配置构建工具...),就可以解释差异:

如果未选中选项如果可用则使用 devtools 包函数

  • CTRL + SHIFT + T 将执行包的 tests 子文件夹中的 R 文件(您通常有一个 R 文件通过 test_check("your_package_name")),

  • 否则使用devtools:test()直接调用tests/testthat子文件夹中的测试。

PS:我无法诊断是什么导致了您的错误消息