Я хотел бы проверить, возвращает ли функция ожидаемый data.frame. Data.frame слишком велик для определения в файле R (например, с использованием чего-то вроде structure()
). Я делаю что-то не так со средами, когда пытаюсь выполнить простое извлечение с диска, например:
test_that("SO example for data.frame retreival", {
path_expected <- "./inst/test_data/project_longitudinal/expected/default.rds"
actual <- data.frame(a=1:5, b=6:10) #saveRDS(actual, file=path_expected)
expected <- readRDS(path_expected)
expect_equal(actual, expected, label="The returned data.frame should be correct")
})
Строки выполняются правильно при запуске в консоли. Но когда я запускаю devtools::test()
, возникает следующая ошибка, когда rds/data.frame читается из файла.
1. Error: All Records -Default ----------------------------------------------------------------
cannot open the connection
1: withCallingHandlers(eval(code, new_test_environment), error = capture_calls, message = function(c) invokeRestart("muffleMessage"),
warning = function(c) invokeRestart("muffleWarning"))
2: eval(code, new_test_environment)
3: eval(expr, envir, enclos)
4: readRDS(path_expected) at test-read_batch_longitudinal.R:59
5: gzfile(file, "rb")
Чтобы это работало, какие корректировки необходимы для среды? Если нет простого способа, то какой хороший способ протестировать большие data.frames?
system.file()
здесь не применяется? Он позволяет указать пакет, а затем биты пути от базы пакета до файла. Так чтоpath_expected <- system.file("inst", "test_data", "project_longitudinal", expected", "default.rds")
попробуй... - person Gavin Simpson   schedule 08.04.2015path_qualified <- base::system.file("inst/test_data/project_longitudinal/expected/dummy.rds", package="REDCapR")
. Однакоpath_qualified <- base::file.path(devtools::inst(name="REDCapR"), "test_data/project_longitudinal/expected/dummy.rds")
работает. Если вы опубликуете официальный ответ, указывающий мне на проблему с рабочим каталогом, я с радостью приму его. - person wibeasley   schedule 08.04.2015