在哪里放置外部文件进行testthat测试

qed*_*qed 18 testing r testthat

假设我有这样的测试:

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

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

Pet*_*eet 19

你把它们放在testthat文件夹里(里面tests).在那里,您可以包含可能用于测试的任何"外部"文件(或者提供用户可能会发现信息的其他解释,例如在".txt"文件中).你也有你的测试文件.r.

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

链接到外部文件的示例tests,请参见此处.但是,当你这样做时要小心.