¿Es posible usar datos del paquete R en las pruebas de prueba o run_examples ()?
Pregunta
Estoy trabajando en desarrollar un paquete R, usando DevTools, TestTat that y Roxygen2. Tengo un par de conjuntos de datos en la carpeta de datos (foo.txt y bar.csv).
Mi estructura de archivo se ve así:
/ mypackage
/ data
* foo.txt, bar.csv
/ inst
/ tests
* run-all.R, test_1.R
/ man
/ R
Estoy bastante seguro de que 'foo' y 'bar' están documentados correctamente:
#' Foo data
#'
#' Sample foo data
#'
#' @name foo
#' @docType data
NULL
#' Bar data
#'
#' Sample bar data
#'
#' @name bar
#' @docType data
NULL
Me gustaría usar los datos en 'foo' y 'bar' en mis ejemplos de documentación y pruebas unitarias.
Por ejemplo, me gustaría usar estos conjuntos de datos en mis pruebas de prueba llamando:
data(foo)
data(bar)
expect_that(foo$col[1], equals(bar$col[1]))
Y me gustaría que los ejemplos en la documentación se vean así:
#' @examples
#' data(foo)
#' functionThatUsesFoo(foo)
Si intento llamar a los datos (FOO) mientras desarrolla el paquete, obtengo el error "Conjunto de datos 'foo' no encontrado". Sin embargo, si construyo el paquete, lo instalo y lo cargo, entonces puedo hacer que las pruebas y ejemplos funcionen.
Mis soluciones actuales son para no ejecutar el ejemplo:
#' @examples
#' \dontrun{data(foo)}
#' \dontrun{functionThatUsesFoo(foo)}
Y en las pruebas, precarga los datos utilizando una ruta específica para mi computadora local:
foo <- read.delim(pathToFoo, sep="\t", fill = TRUE, comment.char="#")
bar <- read.delim(pathToBar, sep=";", fill = TRUE, comment.char="#"
expect_that(foo$col[1], equals(bar$col[1]))
Esto no parece ideal, especialmente porque estoy colaborando con otros, requiriendo que todos los colaboradores tengan los mismos caminos completos para 'foo' y 'bar'. Además, los ejemplos en la documentación parecen no se pueden ejecutar, aunque una vez que el paquete está instalado, pueden.
¿Alguna sugerencia? Muchas gracias.
No hay solución correcta