Я работаю над пакетом R, в котором есть некоторые функции, которые я хочу протестировать (локально) на данных, которые я не могу распространять, потому что источник данных является собственностью.
У меня есть папка (paid_projections
), в которой я храню эти файлы. Это вызвало некоторые начальные трудности при запуске devtools::test()
и проверки R CMD, я думаю, из-за тонких различий в рабочем каталоге, которые видели эти утилиты.
Я решил эту проблему, заставив мои тесты сделать некоторые специальные исправления пути:
spec_file <- file.path('paid_projections', 'pod_projections.xlsx')
file_loc <- file.path(getwd(), spec_file)
#for CMD check
file_loc <- gsub('.Rcheck', '', file_loc, fixed = TRUE)
#for devtools::test()
file_loc <- gsub('tests/testthat/', '', file_loc, fixed = TRUE)
ex <- read_raw_pod(file_loc)
Это... далеко не идеально, и мне как бы хочется пойти принять душ. Это создает поведение, которое я хочу (я могу запустить эти тесты в консоли, через devtools::test()
или проверку R CMD), но это не похоже на правильное решение.
Там есть команда devtools::wd()
, которая кажется здесь полезной, но я не мог понять, как она может заменить бельмо на глазу выше. Буду рад любым предложениям!
R CMD check
действительно работает? Я предполагаю, что вы не помещаете эти файлы в свой пакет (.tar.gz), поэтому он не может работать. По крайней мере, не на CRAN. - person sgibb   schedule 13.03.2016devtools
вы можете сделать следующее: поместить данные вinst/paid
и добавитьinst/paid
к.Rbuildignore
и.gitignore
. Затем вы можете использоватьsystem.file("paid", package="mypackage")
(он перезаписываетсяdevtools
), чтобы получить правильный путь в тестах. Я не думаю, что это сработает дляR CMD check
, потому что.Rbuildignore
не позволяет R помещать данные вtar.gz
. - person sgibb   schedule 13.03.2016