Testthat和covr一气呵成

时间:2018-04-25 11:41:25

标签: r 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.xmlcoverage.xml

1 个答案:

答案 0 :(得分:1)

摘自covr参考手册(https://cran.r-project.org/web/packages/covr/covr.pdf

此函数使用tools::testInstalledPackage()来运行代码,如果您想以其他方式测试软件包,则可以设置type = "none"并将代码作为字符向量传递给{{1 }}参数

code