我想针对包含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 :(得分:1)
摘自covr参考手册(https://cran.r-project.org/web/packages/covr/covr.pdf)
此函数使用
tools::testInstalledPackage()
来运行代码,如果您想以其他方式测试软件包,则可以设置type = "none"
并将代码作为字符向量传递给{{1 }}参数
code