0

inst/extdataRcpp Catch2 テストからファイルのデータ ファイルにアクセスしようとしています。ファイル ツリーは次のようになります。

├── inst
│   └── extdata
│       └── data-sample
├── R
│   ├── catch-routine-registration.R
│   └── RcppExports.R
├── src
    ├── mycode.cpp
    ├── RcppExports.cpp
    ├── Package_types.h
    ├── test-example.cpp
    └── test-runner.cpp

これは、devtools を使用して新しいパッケージ スケルトンから得られるものと似ていると思います。data-sampleこれで、次のように非常に簡単に testthat テストからこのファイルにアクセスできます。

system.file(
    "extdata", "data-sample", package = "Package", mustWork = TRUE
)

そして、必要に応じて使用してください。この時点で、これがインストール済みパッケージからのグローバル パスを使用していることは認識していますが、この値を C++ テストに渡す方法が見つかりません。現在、ハードコードされたパスを使用していますが、明らかに私のマシンでしか機能しません。

これは私が現在使用しているものです:

const std::string DATAFILE = "/my/package/inst/extdata/data-sample";

これはファイルを読み取るための関数であるため、これを埋め込むことはできませんが、それでも知りたいのですが、R データを Rcpp/Catch テストに渡す方法は?

前もって感謝します!

4

3 に答える 3