Я делаю пакет, одной из функций которого является обертка над функциями предсказания других пакетов ml. Поэтому, поскольку он основан на методе предиката generi c, я не объявляю все эти пакеты в разделе подсказок файла DESCRIPTION (я хочу, чтобы список объявленных пакетов был как можно более тонким), и все проверки проходят. Я хотел разделить тесты, выполненные с помощью testthat, на два основных способа. Один, который использует только пакеты из описания и будет выполнен на CRAN, и второй, который будет пропущен на CRAN и выполнен только с использованием travis CI и локальной машины.
Я решил разделить его с помощью системных envs следующим образом
skip_if_no_codecov <- function() {
if (!"CODECOV" %in% names(Sys.getenv())) {
skip("CODECOV entry needed for tests")
} else {
require("randomForest")
require("e1071")
require("gbm")
require("glmnet")
require("parsnip")
require("caret")
}
}
и мой .travis.yml выглядит так:
after_success:
- export CODECOV=true
- Rscript -e 'library(covr); codecov()'
К сожалению, R CMD TEST возвращает предупреждение
'library' or 'require' calls not declared from:
'caret' 'e1071' 'glmnet' 'parsnip'
Похожее предупреждение появляется, когда я использую caret::train
et c. для доступа к функциям. Есть ли способ обойти это? Я не могу поместить эти пакеты в разделы подсказок и нужны только для тестов.
Бест, Шимон