unit-testing - 在 R 中,有没有办法知道定义给定函数的源文件的路径?

标签 unit-testing r

我正在用 R 编写一个单元测试,它需要读取同一目录中定义的一些测试数据。但我也希望能够运行该单元测试,无论当前工作目录是什么。

有没有办法告诉 R 从这里加载文件,其中这里被定义为保存正在执行的函数的源文件的目录?

最佳答案

取决于您对“我正在编写单元测试”的含义。如果您只是从任何地方获取该函数,大卫是对的,我什至认为没有必要这样做,因为您知道它在哪个目录。

我会将该函数包含在一个包中,然后 R 中的机制允许您使数据可用于加载或通过延迟加载。请参阅手册 Writing R Extensions 中的第 1.1.5 节(包中的数据) 。这是 R 方法。

Gabor Grothendieck 给出的另一个选项 this thread在 R 邮件列表上,是在脚本顶部添加以下行:

this.dir <- dirname(parent.frame(2)$ofile)

这将给出使用 source() 获取文件时的目录。 Gabor 称这是一种肮脏的黑客行为,我同意他的观点。

顺便说一句,还请检查以下 R 中的单元测试包:

关于unit-testing - 在 R 中,有没有办法知道定义给定函数的源文件的路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5192693/

相关文章:

visual-studio - 如何让 Visual Studio 将单元测试放置在我想要的位置?

Python 导入错误 - 运行单元测试

r - 如何在R中抽取一千个随机样本?

r - 使用 dplyr 包按时间平均 - R

c++ - 如何使这些测试用例代码美观?

unit-testing - 示例无效的 utf8 字符串?

c# - 迁移遗留代码时进行单元测试

r - 向 splitLayout 提供列表输入

r - ggplot 中的面板透明度

r - 用于 rgdal 的 Mac postgres/postgis 驱动程序