Ruby 运行输入文件定义的多个规范

Ruby 运行输入文件定义的多个规范,ruby,rspec,rake,Ruby,Rspec,Rake,考虑到我有一个外部文件来控制运行哪些规范 control.xls test_id|description|file_path |run 1 |Test 1 |./spec/test1_spec.rb|yes 2 |Test 2 |./spec/test2_spec.rb|no 我有一个读取文件并返回文件路径数组的方法 我想使用该文件数组来运行规范,它可以通过rake或命令行 这可能吗?这是可能的。您只需编写一个自定义rake任务,其中包含

考虑到我有一个外部文件来控制运行哪些规范

control.xls
test_id|description|file_path           |run
1      |Test 1     |./spec/test1_spec.rb|yes
2      |Test 2     |./spec/test2_spec.rb|no
我有一个读取文件并返回文件路径数组的方法

我想使用该文件数组来运行规范,它可以通过rake或命令行


这可能吗?

这是可能的。您只需编写一个自定义rake任务,其中包含读取文件的代码。然后可以为每个文件()调用RSpec-Rake任务,类似于这样(对于结构,这是未测试的代码!):


这里还有一个例子:

在stackoverflow的另一个地方找到:

所以它接受一个文件数组,我使用FileList传递文件,并且只运行上一个规范


谢谢你的意见Martin

谢谢你的回答,我理解你的解释,但还不起作用。
require 'rake/testtask'

namespace :test do
  task :spec do
    test_files = ...
    test_files.each do |test_file|
      RSpec::Core::RakeTask.new do |task|
        task.rspec_opts = test_file
      end
  end
end