如何在Windows计算机上使用RSpec和Watir运行并行测试?

时间:2019-05-10 19:30:40

标签: ruby rspec watir

我正在尝试在Rspec中运行此watir代码,并且还在尝试并行运行测试用例。但是它一个接一个地运行。无论如何,我可以实现并行运行吗?

require 'rspec'
require 'watir'
a=[]
2.times do
  a<<Thread.new do
    describe 'My behaviour' do
      it 'should do something' do
        b = Watir::Browser.new
        b.goto 'www.google.com'
        b.text_field(name: 'q').set 'Rajagopalan'
        b.close
      end
    end
  end
end

a.each(&:join)

但是,如果我在没有Rspec的情况下运行相同的代码,则它将并行运行。例如,请考虑以下代码

require 'rspec'
require 'watir'
a = []
2.times do
  a << Thread.new do
    b = Watir::Browser.new
    b.goto 'www.google.com'
    b.text_field(name: 'q').set 'Rajagopalan'
    b.close
  end
end
a.each(&:join)

2 个答案:

答案 0 :(得分:1)

在此代码中,您没有并行运行规范。您正在并行声明上下文。

换句话说,调用itspecify不会执行测试代码。该块将被保存,然后由rspec运行程序(somewhere here I believe)执行。 这就是为什么RSpec(例如)可以以随机顺序运行所有示例的原因。

因此,要进行并行执行,您需要做的不仅仅是示例代码。请参见在the other answer中可以执行此操作的项目示例。

答案 1 :(得分:0)

使用Rake Task中的Parallel Test gemParallel Split Test gem。 您可以看到一个示例in this sample code