Raku:使用 prove6 时读取测试文件夹中的文件



编写测试时,文本文件在测试文件夹中读取,但在文件夹外不被读取(即,在运行 prove6 时(。例如,此代码读取 ReadConfig.ini 在测试文件夹内,但不读取外部:

my %v = ReadIni( 'ReadConfig.ini' );

另一方面,此代码在测试文件夹之外工作:

my %v = ReadIni( $*PROGRAM.dirname.IO.add('ReadConfig.ini') );

正确的语法是什么?

谢谢!

因此,您的测试包含以下内容:

my %v = ReadIni( 'ReadConfig.ini' );

当您声明相对文件路径时,它将针对$*CWD进行绝对化。因此,如果您在t/文件夹中运行测试,它将查找t/ReadConfig.ini,如果您在文件夹中运行它t/../它将查找../ReadConfig.ini。因此,在编写测试时,应使用绝对化路径,以便工具不限于在特定位置内运行测试。


my %v = ReadIni( $*PROGRAM.dirname.IO.add('ReadConfig.ini') );

另一方面,如果您提供绝对文件路径,则含义没有差异,无论您在哪个目录中,这都将执行您的意思。但是,我建议不要使用不包括窗口上音量部分的dirname,而是使用父级:

my %v = ReadIni( $*PROGRAM.parent.add('ReadConfig.ini') );

相关内容

  • 没有找到相关文章

最新更新