Где размещать внешние файлы для тестов testthat

Предположим, что у меня есть тест следующим образом:

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

и этот тест зависит от внешнего файла test.txt, где я должен помещать этот файл?

Ответы

Ответ 1

Вы помещаете их в папку testthat (внутри tests). Там вы включаете любой "внешний" файл, который вы можете использовать для своих тестов (или это дает дополнительные пояснения, которые пользователь может найти информативными, например, в файле ".txt" ). Здесь также есть тестовые файлы .r.

Альтернативно (или, кроме того): вы также можете загрузить файл из другого места, включив путь к файлу (например, в свою папку data - используйте относительный путь). Однако это может привести к хрупкой инфраструктуре, поскольку вы не сможете полагаться на это внешнее местоположение, которое будет доступно в любое время, и в этом случае testthat вызовет ошибку, когда он не сможет найти файл.

Пример ссылки на файл вне tests, см. здесь. Остерегайтесь, когда вы это делаете.

Ответ 2

Правильное место кажется (несколько интуитивно) /path/to/project/tests/testthat.