testsまたはrun_examples()のtestでrパッケージデータを使用することは可能ですか?

StackOverflow https://stackoverflow.com/questions/8898469

  •  29-10-2019
  •  | 
  •  

質問

devtools、testtat、およびroxygen2を使用して、Rパッケージの開発に取り組んでいます。データフォルダー(foo.txtおよびbar.csv)にいくつかのデータセットがあります。

私のファイル構造は次のようになります:

/ mypackage
    / data
        * foo.txt, bar.csv
    / inst
        / tests
            * run-all.R, test_1.R
    / man
    / R

「foo」と「bar」が正しく文書化されていると確信しています。

    #' Foo data
    #'
    #' Sample foo data
    #'
    #' @name foo
    #' @docType data
    NULL
    #' Bar data
    #'
    #' Sample bar data
    #'
    #' @name bar
    #' @docType data
    NULL

ドキュメントの例とユニットテストで「Foo」と「Bar」のデータを使用したいと思います。

たとえば、テストでテストでこれらのデータセットを使用して、次のように使用したいと思います。

    data(foo)
    data(bar)
    expect_that(foo$col[1], equals(bar$col[1]))

そして、ドキュメントの例を次のようにしたいです。

    #' @examples
    #' data(foo)
    #' functionThatUsesFoo(foo)

パッケージの開発中にデータ(foo)を呼び出そうとすると、「データセット」が見つかりません」というエラーが表示されます。ただし、パッケージを構築し、インストールしてロードすると、テストと例を機能させることができます。

私の現在のワークアラウンドは、例を実行しないことです。

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

テストでは、ローカルコンピューターに固有のパスを使用してデータを事前ロードします。

    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]))

これは理想的ではないようです - 特に私は他の人と協力しているので - すべての協力者が「foo」と「bar」に同じフルパスを持たせる必要があります。さらに、ドキュメントの例は、パッケージがインストールされたら、実行できないように見えます。

助言がありますか?どうもありがとう。

正しい解決策はありません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top