我正在使用testthat包来测试一个在较大仓库中的R包。我想测试R包外文件的内容。
在测试过程中,我可以引用位于R包外的文件吗?
我的尝试
您可以下载可复现的示例 MyRepo.tar.gz
我的代码仓库名为"myRepo",其中包含一个R包"myRpkg"和一个充满杂项脚本的文件夹。
~/MyRepo/
~/MyRepo/MyRpkg
~/MyRepo/Scripts
"MyRpkg"中的测试位于
/tests/
文件夹中。~/myRepo/myRpkg/tests/test.myscript.R
我希望能够测试Scripts文件夹中的文件:
~/MyRepo/Scripts/myscript.sh
我想阅读脚本以测试第一行内容,类似于这样做:
check.script <- readLines("../../../Scripts/myscript.sh")[1]
expect_true(grepl("echo", check.script))
如果我从MyRepo目录开始,这个功能就能正常工作:
cd ~/MyRepo
R CMD check MyRpkg
但是如果我切换到另一个目录,它会失败:
cd
R CMD check MyRepo/MyRpkg