在目录外打开Yaml文件

时间:2018-05-21 06:39:21

标签: ruby cucumber yaml

我希望在主文件夹内的所有目录中都有一个内置配置的公共Yml文件。

我有一个名为ROMauto的文件夹和一个名为Mobile

的目录

test_data.yml存储在Mobile目录之外,但存储在ROMauto内。

我想从test_data.yml文件夹中访问此Mobile。我可以在ROMauto内部进行同样的操作,因为它来自同一目录。

如何阅读其目录外的YAML

我用

尝试了
@datasource = YAML.load_file("test_data.yml")

YAML::load(File.open('ROMauto/test_data.yml)'))

fn = File.dirname(File.expand_path(FILE)) + '../../test_data.yml'
YAML::load(File.open(fn))

YAML::load_file(File.join(File.dirname(File.expand_path(__FILE__)), 'test_data.yml'))

来自Mobile文件夹,它仍然会抛出这个名为:

的错误
No such file or directory @ rb_sysopen - test_data.yml (Errno::ENOENT)

有没有办法从目录外调用和读取YAML?

1 个答案:

答案 0 :(得分:1)

file = File.expand_path("../../test_data.yml", __FILE__)
YAML.load_file(file)

应该适合你。首先,它将解析当前文件的父级,即' Mobile /',然后转到父级,并附加test_data.yml。