【问题标题】:Where to put external files for testthat tests在哪里放置用于测试的外部文件
【发布时间】:2015-08-08 16:28:15
【问题描述】:

假设我有这样的测试:

require(testthat)
context("toy test")
test_that("toy", {
            df = my.read.file("test.txt", header=TRUE)
            expect_true(myfunc(df) == 3.14)
})

而且这个测试依赖于一个外部文件test.txt,那么我应该把这个文件放在哪里呢?

【问题讨论】:

    标签: r testing testthat


    【解决方案1】:

    您将这些放在testthat 文件夹中(在tests 内)。在那里,您包含了您可能用于测试的任何“外部”文件(或提供了一些额外的解释,用户可能会发现信息丰富,例如在“.txt”文件中)。你也有你的.r 测试文件。

    或者(或者,另外):您还可以从另一个位置加载文件,方法是包含文件的路径(例如,到您的 data 文件夹 - 使用相对路径)。但是,这可能会导致基础设施脆弱,因为您可能无法始终依赖该外部位置可用,在这种情况下,testthat 将在找不到文件时引发错误。

    链接到tests 之外的文件的示例,请参阅here。不过,当你这样做时要小心。

    【讨论】:

    • 请注意,测试是使用tests/testthat/ 目录作为getwd() 运行的。我经常在tests/testthat 中添加一个“输入数据”文件夹,以使该目录易于浏览。
    【解决方案2】:

    正确的位置似乎是(有点直观)/path/to/project/tests/testthat

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-02
      • 2016-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 2014-02-10
      • 2020-06-07
      相关资源
      最近更新 更多