是否有任何工具可以使用testthat
包來評估R腳本的代碼覆蓋率?除了未來工作部分an RJournal article之外,我沒有發現Google的任何內容。testthat包的R代碼覆蓋率
回答
我會回答我自己的問題:-)
我在項目現場問了同樣的問題。 目前似乎沒有這樣的支持測試庫,但最近通過使用R的開發版本和利用探查器的一些新功能打開的可能性。不幸的是,這樣做似乎是一項巨大的工作,但希望有人能夠在這方面取得領先。
尋找以下詳細信息in this ticket。
這裏是在計算測試覆蓋在函數級別的一組R上的文件的嘗試:
https://gist.github.com/cannin/819e73426b4ebd5752d5
這取決於使用正則表達式來查找在其中創建功能,當他們被調用。
有新來的covr
package這似乎做你想要的一切,以及更多!它提供與各種CI服務和閃亮的整合。它可以與任何類型的測試基礎結構(testthat,RUnit,其他)協同工作,也可以與編譯代碼一起工作。
接下來的內容只是一個非常簡單的演示案例,我很快編譯以幫助您開始。
library(devtools)
install_github("jimhester/covr")
create("testcovr")
use_testthat("testcovr")
添加含有
doublefun <- function(x, superfluous_option) {
if (superfluous_option) {
2*x
} else {
3*x
}
}
文件testcovr/R/doublefun.r
和含有
context("doublefun")
test_that("doublefun doubles correctly", {
expect_equal(doublefun(1, TRUE), 2)
})
文件testcovr/tests/testthat/test.doublefun.r
然後運行例如
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包本身使用covr來測量代碼覆蓋率。這在testthat中是可見的[travis.yml文件](https://github.com/hadley/testthat/blob/24d76a1ed7b018440dd91450fce8a02420480955/.travis.yml)。 –
- 1. 代碼覆蓋率:.NET代碼覆蓋率和SonarQube VSTS集成
- 2. 聲納代碼覆蓋率:%代碼覆蓋率不一致
- 3. rspec的代碼覆蓋率
- 4. PHPUnitSeleniumTestcase的代碼覆蓋率
- 5. 代碼覆蓋率 - 哪個代碼覆蓋哪個代碼?
- 6. 差代碼覆蓋率
- 7. PHPUnit代碼覆蓋率0%
- 8. 代碼覆蓋率與SCCT
- 9. ESB代碼覆蓋率
- 10. 全部代碼覆蓋率
- 11. Xcode 8代碼覆蓋率
- 12. 代碼覆蓋率分析
- 13. 爲Perl代碼覆蓋率
- 14. TDD和代碼覆蓋率
- 15. 代碼覆蓋率爲Android
- 16. CoffeeScript代碼覆蓋率
- 17. PHPUnit代碼覆蓋率
- 18. MSTest代碼覆蓋率
- 19. Jacoco代碼覆蓋率
- 20. XCode - 代碼覆蓋率?
- 21. Python代碼覆蓋率
- 22. 代碼覆蓋率統計
- 23. Appium iOS代碼覆蓋率
- 24. Grails 3代碼覆蓋率
- 25. PHPUnit代碼覆蓋率顯示單元測試的代碼覆蓋率?
- 26. Xcode 7代碼覆蓋率 - 無覆蓋率數據
- 27. Jacoco代碼覆蓋率顯示Jenkins覆蓋率爲0%
- 28. 靶心覆蓋率,代碼覆蓋率爲0%
- 29. r - data.table和testthat包
- 30. .Net Core 2.0中的代碼覆蓋率
看來這個答案有點過時了,看到我的答案。 – jhin