r - 我应该把 testthat 自动化测试的数据放在哪里?

标签 r unit-testing automated-tests testthat

我正在使用 Hadley's testthat-based approach用于自动测试我的包。

使用这种方法,最适合放置测试数据文件的位置是仅由测试脚本在 tests/testthat) 中使用的文件,而不是由 R/中的任何其他函数使用的文件?

我目前的做法是将它们放入 tests/testdata ,然后 read.table从那里使用相对路径而不是 system.file (以避免需要安装包来运行测试)。

有没有标准的方法来做到这一点?

最佳答案

摘自 Ben Bolker 的评论:

I use inst/testdata and then system.file("testdata",...,package="my_package")



这种方法的优点:
  • 您可以保持文件结构整洁,尤其是当您有许多数据文件和/或测试时。
  • 文件在 inst 中的事实安装是长期的规范 R 实践; system.file("testdata", "some_file") 似乎更安全将永远比那个工作../testdata/some_file会做。我在做 R CMD check 时使用相对文件路径的经历很糟糕.
  • 与 Sathish 的答案不同,它不依赖于您的数据被“存储”为 R 代码。
  • 关于r - 我应该把 testthat 自动化测试的数据放在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32328802/

    相关文章:

    python - 如何在表驱动测试中使用assertRaises,其中一些测试会引发而其他测试则不会

    gradle - 如何让 Gradle 按一定顺序运行任务?

    selenium - 基于云的测试自动化工具

    regex - 如何在 R 中使用 grep() 从数据框中选择行

    sql - RPostgreSQL 无法连接到服务器

    android - 使用 Robolectric 在 Android Studio 中测试应用程序

    java - 如何根据 Maven 阶段(安装或测试)在 DAO 类中使用不同的持久性单元?

    automated-tests - 关于集成测试的好书或其他资源?

    r - 获取多个日期间隔的 No_intersection/Complementary 部分

    html - 发布到 rpubs 现有的 html 文件