È possibile utilizzare i dati del pacchetto R nei test Test o run_examples ()?
Domanda
Sto lavorando allo sviluppo di un pacchetto R, usando DevTools, Testthat e Roxygen2. Ho un paio di set di dati nella cartella dati (foo.txt e bar.csv).
La mia struttura di file sembra questo:
/ mypackage
/ data
* foo.txt, bar.csv
/ inst
/ tests
* run-all.R, test_1.R
/ man
/ R
Sono abbastanza sicuro che "foo" e "bar" siano documentati correttamente:
#' Foo data
#'
#' Sample foo data
#'
#' @name foo
#' @docType data
NULL
#' Bar data
#'
#' Sample bar data
#'
#' @name bar
#' @docType data
NULL
Vorrei utilizzare i dati in "foo" e "bar" nei miei esempi di documentazione e test unitari.
Ad esempio, vorrei utilizzare questi set di dati nei miei test che chiamano:
data(foo)
data(bar)
expect_that(foo$col[1], equals(bar$col[1]))
E vorrei che gli esempi nella documentazione sembrassero questo:
#' @examples
#' data(foo)
#' functionThatUsesFoo(foo)
Se provo a chiamare i dati (FOO) durante lo sviluppo del pacchetto, ottengo l'errore "set di dati" foo "non trovato". Tuttavia, se costruisco il pacchetto, lo installo e lo carico, allora posso far funzionare i test e gli esempi.
I miei attuali lavori di lavoro sono non eseguire l'esempio:
#' @examples
#' \dontrun{data(foo)}
#' \dontrun{functionThatUsesFoo(foo)}
E nei test, pre-caricare i dati utilizzando un percorso specifico per il mio computer locale:
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]))
Questo non sembra l'ideale, soprattutto perché sto collaborando con gli altri - richiedendo a tutti i collaboratori di avere gli stessi percorsi completi per "Foo" e "Bar". Inoltre, gli esempi nella documentazione sembrano non essere eseguiti, anche se una volta installato il pacchetto, possono.
Eventuali suggerimenti? Grazie mille.
Nessuna soluzione corretta