我想对一个包运行测试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
套件的执行。