Có công cụ nào để đánh giá độ bao phủ mã cho các tập lệnh R sử dụng gói testthat
không? Tôi không tìm thấy gì bởi Google ngoại trừ đề cập đến chủ đề trong phần Làm việc trong tương lai của an RJournal article.Phạm vi mã R cho gói thử nghiệm
Trả lời
Tôi sẽ trả lời câu hỏi của riêng mình :-)
Tôi đã hỏi cùng một câu hỏi tại trang web của dự án. Có vẻ như hiện tại không có hỗ trợ nào cho thư viện testthat, nhưng khả năng gần đây được mở bằng cách sử dụng phiên bản phát triển của R và khai thác một số tính năng mới của trình hồ sơ. Thật không may, có vẻ như một công việc rất lớn để làm điều đó, nhưng hy vọng ai đó sẽ dẫn đầu về điều đó.
Tìm chi tiết in this ticket.
Dưới đây là một nỗ lực tính toán bảo hiểm thử nghiệm cho một tập hợp các file R ở mức chức năng:
https://gist.github.com/cannin/819e73426b4ebd5752d5
Nó phụ thuộc vào việc sử dụng biểu thức thông thường để tìm nơi chức năng được tạo ra và khi chúng được gọi.
Có mới đến covr
package mà dường như làm mọi thứ bạn muốn và hơn thế nữa! Nó cung cấp tích hợp với các dịch vụ CI khác nhau và sáng bóng. Nó hoạt động với bất kỳ loại cơ sở hạ tầng kiểm thử nào (testthat, RUnit, bất kỳ thứ gì khác) và cũng làm việc với mã được biên dịch.
Điều gì sau đây chỉ là một trường hợp demo rất đơn giản mà tôi đã biên soạn một cách nhanh chóng để giúp bạn bắt đầu.
library(devtools)
install_github("jimhester/covr")
create("testcovr")
use_testthat("testcovr")
Thêm một tập tin testcovr/R/doublefun.r
chứa
doublefun <- function(x, superfluous_option) {
if (superfluous_option) {
2*x
} else {
3*x
}
}
và một tập tin testcovr/tests/testthat/test.doublefun.r
chứa
context("doublefun")
test_that("doublefun doubles correctly", {
expect_equal(doublefun(1, TRUE), 2)
})
và sau đó chạy ví dụ
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
Gói testthat chính nó sử dụng covr để đo lường phạm vi mã. Điều này hiển thị trong tệp [travis.yml] của testthat (https://github.com/hadley/testthat/blob/24d76a1ed7b018440dd91450fce8a02420480955/.travis.yml). –
- 1. Phạm vi mã thử nghiệm Android, Eclipse
- 2. Đảm bảo phạm vi mã trong thử nghiệm đơn vị?
- 3. thử phạm vi khối
- 4. Phạm vi mã sử dụng thử nghiệm đơn điệu và đơn vị
- 5. Thử nghiệm gói NuGet
- 6. Phạm vi mã PHPUnit
- 7. Có cách nào để vô hiệu hóa phạm vi mã trong PHPUnit cho một thử nghiệm không?
- 8. Phạm vi kiểm tra cho cả hai thử nghiệm đơn vị Powermock và JMockit
- 9. R: hypergeometric thử nghiệm (phyper)
- 10. Phạm vi mã trên Play! dự án
- 11. Mã thử nghiệm cho ứng dụng được nhúng
- 12. thử nghiệm gói JUnit (trong Eclipse)
- 13. Phạm vi JavaScript trong khối thử
- 14. Phạm vi vấn đề khi sfApply được sử dụng trong chức năng (gói tuyết rơi - R)
- 15. Thử nghiệm và cấu trúc gói python
- 16. thử nghiệm yii phpunit với lượt xem trong phạm vi phủ sóng
- 17. Phạm vi mã đo tại Delphi
- 18. Không thể chạy Thử nghiệm MSTest với phạm vi mã được bật trong khi sử dụng NHibernate
- 19. Mẫu thử nghiệm đơn vị cho vi điều khiển Mã C
- 20. Gỡ lỗi/Thử nghiệm Mã LPC
- 21. Cài đặt gói thử nghiệm trên debian
- 22. Phạm vi mã trong monotouch
- 23. Phạm vi mã Java ở Hudson
- 24. Làm thế nào để sử dụng thử nghiệm bên ngoài trong Mã R
- 25. Loại trừ phụ thuộc phạm vi "được cung cấp" trong giai đoạn thực hiện "thử nghiệm"?
- 26. Intellij Idea: xem phạm vi phủ sóng thử nghiệm trên dự án maven
- 27. Có thể sử dụng dữ liệu gói R trong các thử nghiệm testthat hoặc run_examples() không?
- 28. C++ std :: bình đẳng - lý do đằng sau không thử nghiệm cho 2 phạm vi có kích thước bằng nhau?
- 29. Sự khác biệt giữa các thử nghiệm/và inst/test/đối với gói R
- 30. thử giới hạn khối phạm vi biến const
Có vẻ như câu trả lời này đã lỗi thời; xem câu trả lời của tôi – jhin