我正在尝试inst/extdata
从 Rcpp 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 测试?
提前致谢!