testsまたはrun_examples()のtestでrパッケージデータを使用することは可能ですか?
質問
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」に同じフルパスを持たせる必要があります。さらに、ドキュメントの例は、パッケージがインストールされたら、実行できないように見えます。
助言がありますか?どうもありがとう。
正しい解決策はありません
所属していません StackOverflow