У меня есть общий вопрос о передовых практиках написания и тестирования кода из репозитория Github (пакет, размещенный на CRAN), особенно для очень больших функций (более 300 строк), которые нельзя запускать независимо от других функций из того же пакет.
Пока что я:
- клонировал репо «пакета» от GitHub
- с помощью текстового редактора открыл файлы .R в клонированном репозитории пакетов (назовем это package-dev)
- добавил несколько строк кода в существующую функцию и сохранил .R в "package-dev"
- ...? (хочу проверить функцию, к которой я добавил код)
- Git добавить, зафиксировать, нажать.
Что касается шага 4. Я просто хочу протестировать функцию (буквально, вызвав ее) с моими вновь добавленными изменениями, даже до запуска каких-либо модульных тестов. Однако эта функция является частью огромной функции-оболочки и более крупного конвейера и требует специфичных для пакета входных данных. Поэтому я планирую загрузить этот пакет "package-dev" и выполнить функции в этом конвейере.
Это правильный способ тестирования кода, который вы вносите в этот пакет? загрузить локальную версию пакета "package-dev", в чей код вы внесли изменения, и запустить из нее функции?
Я попытался переустановить «package-dev» из другого пути к файлу с помощью devtools с целью тестирования функций, в которые теперь добавлены мои фрагменты кода, но, похоже, возникают проблемы, возможно, из-за того же имя (s).
devtools::install_local("path_to_package-dev")
library("package-dev")
.onLoad failed in loadNamespace() for 'rJava', details:
call: inDL(x, as.logical(local), as.logical(now), ...)
error: unable to load shared object 'path-to-rJava':
LoadLibrary failure: %1 is not a valid Win32 application.
Что люди обычно делают для своего шага 4?