是否有工具可以使用testthat
包评估R脚本的代码覆盖率?我在谷歌上除了在一篇 RJournal 文章的 未来工作 部分提到此话题外,未找到其他相关信息。
有一个新到的covr
软件包,它似乎可以满足你想要的一切,而且更多!它提供了与各种CI服务和shiny的集成。它适用于任何类型的测试基础架构(testthat、RUnit等)并且也适用于编译代码。
下面只是一个我快速编写的非常简单的演示案例,以便让您开始使用。
install.packages("covr")
添加一个文件testcovr/R/doublefun.r
,文件包含以下内容:
doublefun <- function(x, superfluous_option) {
if (superfluous_option) {
2*x
} else {
3*x
}
}
还有一个文件 testcovr/tests/testthat/test.doublefun.r
包含在其中。
context("doublefun")
test_that("doublefun doubles correctly", {
expect_equal(doublefun(1, TRUE), 2)
})
然后运行例如
test("testcovr")
## Testing testcovr
## doublefun : .
library(covr)
package_coverage("testcovr")
## doublefun : .
##
## Package Coverage: 66.67%
## R/doublefun.r: 66.67%
zero_coverage(package_coverage("testcovr"))
## doublefun : .
##
## filename first_line last_line first_column last_column value
## 3 R/doublefun.r 5 5 9 11 0
testthat
软件包评估R脚本的代码覆盖率:library(covr)
coverage_to_list()
https://gist.github.com/cannin/819e73426b4ebd5752d5
这取决于使用正则表达式来查找函数的创建位置以及它们何时被调用。