我正在开发一个转换器,我使用 rspec 检查转换的值是否正确。为了检查值,我需要加载转换后的文件(用 JSON 编写)。所以我准备了一种方法来将转换后的文件加载到spec_helper.rb
. 我用钩子在每个规范文件中调用这个方法:before
(但这不是这个问题的本质)。
然后,我想对多个转换结果运行相同的 rspec 测试。这是一个公正的形象。
file_names = [ 'file1', 'file2', 'file3' ] # OR use Dir.glob to get some file paths
file_names.each do |file|
all_rspec_tests( file )
end
请告诉我迭代某些文件名的最佳实践。我尝试了几种模式。
1) 在 Rakefile 中,我们不能用 RakeTask 传递变量。然后我使用了 ENV(环境变量),如下所示:如何将命令行参数传递给 Rspec 脚本? 它没有按预期工作。特别是,RakeTast 不会按顺序运行(看起来像是在另一个线程上运行),因此每个测试都没有正确运行。
2)制作一个模块并用它扩展RSpec:使用 不同的过滤器多次运行相同的规范 但这是使用JavaScript的一种模式。而且我不知道这种方法会成功。