Как использовать необработанные пакеты с тестом R - PullRequest
0 голосов
/ 20 января 2020

Я делаю пакет, одной из функций которого является обертка над функциями предсказания других пакетов 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. для доступа к функциям. Есть ли способ обойти это? Я не могу поместить эти пакеты в разделы подсказок и нужны только для тестов.

Бест, Шимон

...