如何在rake任务中并行运行功能?

时间:2014-04-11 17:21:45

标签: ruby cucumber

通常我使用parallel_cucumber运行我的测试,parallel_cucumber使用parallel_test gem并行运行不同的功能。我想设置一个rake任务,该任务将使用不同的配置文件运行并并行运行每个任务中的功能。

我用这种方式设置了我的Rakefile:

namespace :features do
  Cucumber::Rake::Task.new(:basket) do |t|
    t.profile = "basket"
  end

  Cucumber::Rake::Task.new(:fruits) do |t|
    t.profile = "fruits"
  end

  Cucumber::Rake::Task.new(:veggies) do |t|
    t.profile = "veggies"
  end
  task :all => [:basket, :fruits, :veggies]
end

当我运行“rake features:all”时,它将按顺序运行每个任务(按预期/期望),但将逐个运行每个任务中的功能(不需要)。我想保持每个任务按顺序运行,但希望每个任务中的功能并行运行。这可能吗?如果没有办法可以做到这一点吗?

一如既往,非常感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

Rake提供多任务。你可以

  1. 在rakefile中将task更改为multitask

    multitask :all => [:basket, :fruits, :veggies]

  2. 在命令行中使用-m选项:

    rake -m features:all

答案 1 :(得分:0)

看看parallel_tests宝石。它允许您并行运行您的功能。虽然典型的用例是运行所有功能,但您可以并行运行特定的rake任务。有关详细信息,请参阅文档。