¿Es posible usar los datos del paquete R en pruebas que prueban o run_examples ()?

Estoy trabajando en el desarrollo de un paquete R, usando devtools, testthat 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 utilizar estos conjuntos de datos en mis pruebas que prueban llamando a:

    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 datos (foo) mientras desarrollo el paquete, aparece 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 los ejemplos funcionen.

Mis soluciones actuales son no ejecutar el ejemplo:

    #' @examples
    #' \dontrun{data(foo)}
    #' \dontrun{functionThatUsesFoo(foo)}

Y en las pruebas, precargue 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, lo que requiere que todos los colaboradores tengan los mismos caminos completos para 'foo' y 'bar'. Además, los ejemplos en la documentación parecen que no pueden ejecutarse, aunque una vez que el paquete está instalado, pueden.

¿Alguna sugerencia? Muchas gracias

Respuestas a la pregunta(4)

Su respuesta a la pregunta