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

Ruby 如何在Windows计算机上使用RSpec和Watir运行Parrelell测试?,ruby,rspec,watir,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.

我试图在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”
需要“watir”
a=[]
2.5倍
a使用Rake任务中的or。

您可以看到一个示例。

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

换句话说,调用
it
specify
不会执行测试代码。正在保存该块,然后由rspec runner()执行。 这就是为什么RSpec(例如)可以以随机顺序运行所有示例


因此,要实现并行执行,您需要做的不仅仅是示例代码。请参见中的项目示例

你好,提图斯,我使用了并行剥离测试gem,它是按顺序运行的,它报告说这个Ruby不支持
Process.fork
。我使用Ruby2.6。你有解决这个问题的办法吗?哦,对了,Windows。Parallel gem无法在Windows上运行,因为它不支持进程。fork
@Rajagopalan如果您受到Windows的限制,您应该查看Docker for Windows(您需要Windows Pro)让你的测试在一个容器中运行。但是我在许多机器上使用了我的框架,所以这不起作用@Gijs PaulidesI无法进入你的完整设置,但是如果测试在所有单独的机器上执行很重要,那么从理论上讲,应该可以在一台机器上并行运行
rspec
,让watir连接到不同的机器并远程启动浏览器。大项目,大量工作,甚至不确定它是否会起作用。但如果您不想在所有机器上设置Docker,那么这就是解决方案。祝你好运当你说并行
context
时,你的意思是说并行描述块,嗯?是的,本质上你是在并行添加示例块,稍后将执行,不一定是并行执行。
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)