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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top