2012-09-07 29 views

Trả lời

7

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.

+4

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

1

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.

19

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 
+1

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). –

Các vấn đề liên quan