Выполните модульные тесты на git pu sh и интеграционные тесты по запросу - PullRequest
3 голосов
/ 04 мая 2020

При сборке пакетов R мы используем testthat для написания тестов. У нас есть 2 файла: тестовый файл для указанного пакета c ( speci c .R ) и один файл, который мы используем, чтобы убедиться, что все пакеты продолжают работать вместе и общий результат в порядке. ( overall.R ). Оба теста в настоящее время выполняются, когда мы запускаем * ghub или sh для PR через Travis, который неявно выполняет эту строку кода (R CMD check *tar.gz). check запускает все тесты в папке test, и, таким образом, запускаются оба файла.

Теперь я немного новичок в тестировании ... но, похоже, мы более или менее воссоздали разницу b / wa модульный тест и интеграционный тест .

Учитывая, что тесты для overall.R занимают намного больше времени, мы хотели бы ограничить его так что они запускаются только тогда, когда мы выполняем pull-запрос к пакету (когда мы ввели новую функциональность в другой ветке dev), в то время как тесты для пакета c продолжают выполняться каждый раз, когда мы фиксируем / pu sh в РЕПО.

Возможно ли это в github или Travis?

1 Ответ

1 голос
/ 07 мая 2020

Вы можете поместить ваш общий скрипт .R в другой каталог, а затем указать эту папку в качестве нового каталога тестов для перехватываний по запросу-запросу, но тогда будут выполняться только ваши интеграционные тесты, а не модульные тесты. Смотри R CMD check --help

R CMD check --test-dir integration_tests package.tar.gz
...