Testthat и covr за один раз
Я хотел бы запустить тесты для пакета с testthat
и вычислить покрытие кода с covr
, Кроме того, результаты testthat
должны быть сохранены в формате JUnit XML и результаты из covr
должны быть сохранены в формате Cobertura.
Следующий код делает трюк (когда getwd()
это корень пакета):
options("testthat.output_file" = "test-results.xml")
devtools::test(reporter = testthat::JunitReporter$new())
cov <- covr::package_coverage()
covr::to_cobertura(cov, "coverage.xml")
Однако тесты выполняются дважды. Однажды с devtools::test
и однажды с covr::package_coverage
,
Я понимаю, что covr::package_coverage
выполняет тесты, но не производит test-results.xml
,
Как следует из названия, я хотел бы получить оба test-results.xml
а также coverage.xml
с одним выполнением набора тестов.
0 ответов
Из справочного руководства covr (https://cran.r-project.org/web/packages/covr/covr.pdf)
Эта функция использует
tools::testInstalledPackage()
для запуска кода, если вы хотите протестировать свой пакет другим способом, вы можете установитьtype = "none"
и передайте код для запуска как вектор символов вcode
параметр
covr::package_coverage(
type = "none",
code = "testthat::test_package(
'myPackage',
reporter = testthat::JunitReporter$new(file = 'test-results.xml')
)")