2012-09-07 25 views

Respuesta

7

La voy a responder a mi propia pregunta :-)

me hice la misma pregunta en el sitio del proyecto. Parece que por el momento no existe tal soporte para la prueba que biblioteca, pero la posibilidad se abrió recientemente mediante el uso de la versión de desarrollo de R y la explotación de algunas características nuevas del perfilador. Desafortunadamente, parece un gran trabajo para hacer eso, pero espero que alguien tome la iniciativa en eso.

Encuentra los detalles in this ticket.

+4

Parece que esta respuesta ya está obsoleta; ver mi respuesta – jhin

19

¡Está el recién llegado covr package que parece hacer todo lo que quiere, y más! Proporciona integración con diversos servicios de CI y brillante. Funciona con cualquier tipo de infraestructura de prueba (testthat, RUnit, cualquier otra cosa) y también funciona con código compilado.


lo que sigue es sólo un caso de demostración muy simple Compilé rápidamente para que pueda empezar.

library(devtools) 
install_github("jimhester/covr") 
create("testcovr") 
use_testthat("testcovr") 

Añadir un archivo que contiene testcovr/R/doublefun.r

doublefun <- function(x, superfluous_option) { 
    if (superfluous_option) { 
     2*x 
    } else { 
     3*x 
    } 
} 

y un archivo que contiene testcovr/tests/testthat/test.doublefun.r

context("doublefun") 

test_that("doublefun doubles correctly", { 

    expect_equal(doublefun(1, TRUE), 2) 
}) 

y vuelva a ejecutar, por ejemplo,

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

El paquete de prueba en sí usa covr para medir la cobertura del código. Esto es visible en testthat [archivo travis.yml] (https://github.com/hadley/testthat/blob/24d76a1ed7b018440dd91450fce8a02420480955/.travis.yml). –

Cuestiones relacionadas