testthat测试的外部文件放在哪里

Where to put external files for testthat tests

假设我有这样的测试:

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

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

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

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

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

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