В пакете, который я разрабатываю, мне нужно определить новый блок: уровень полета (FL), эквивалентный 100 футам.
Пакет units
обеспечивает следующие возможности:
units::install_conversion_constant("FL", "ft", 100)
Чтобы сделать тестовый пакет (devtools::test()
) и проверка пакета (devtools::test()
), оба работают для моих модульных тестов с использованием этого пользовательского элемента, я обнаружил, что мне нужно зарегистрировать его в загрузке пакета фаза.
Вот что я сделал:
В zzz.R
(новые файлы, как на "Когда вам нужно побочные эффекты" раздела):
# register flight levels (FL) as a unit when loading this package
.onLoad <- function(libname, pkgname) {
# install user-define unit for flight level
units::install_conversion_constant("FL", "ft", 100)
invisible()
}
# register flight levels (FL) as a unit when loading this package
.onUnload <- function(libname, pkgname) {
# uninstall user-define unit for flight level
units::remove_symbolic_unit("FL")
invisible()
}
Если это не devtools::test()
и установка кода регистрации устройства в каком R/unit-conversion.R
файле R/unit-conversion.R
делает devtools::test()
успешным, но devtools::check()
не работает.
Является ли решение выше правильного подхода для регистрации (и удалить [если это тоже будет сделано?]) Новый блок в пакете?