我需要同时运行几个rb文件。每个文件的设置都是相同的(下面是简化的示例)
文件#1 (总共有6个文件,每个文件大约有10个测试)
require_relative './spec_helper'
require_relative './tests'
    config.before(:each) do
        @driver = Selenium::WebDriver.for :firefox
        @base_url = get_url
    end  
    config.after(:each) do
        @driver.close
    end  
RSpec.describe 'File 1' do
  it 'test 1' do
       login
       verify element present
       logout
  end
  it 'test 2' do
       login
       verify element present
       logout
  end
   it 'test 3' do
       login
       verify element present
       logout
   end
end所有的文件都可以单独运行-但是,当同时运行时,它们在after钩子中结束时会互相踩在一起,特别是@driver.close,我得到了以下错误:
for nil:NilClass在C:/Automated_Testing/Indie/w_molap_1.rb:31:inblock (2个级别)中出现后挂接NoMethodError: undefined method quit‘
我的问题是:我是否可以做一些不同的事情-也许是在钩子设置之前的驱动程序中,这样我就可以同时运行这些文件,而不会让它们相互践踏。
发布于 2015-06-09 05:27:19
我认为你需要研究的是在parallel_test中使用Ruby Gem。此外,您应该从Test::Unit::TestCase扩展您的测试类,以便您可以利用定义setup/teardown方法的优势。此外,每个测试方法都应该为每个方法分离到单独的测试类中,以便parallel_test可以在单独的线程中运行每个方法。
此外,我会在开始时保持简单,在您弄清楚基本的多线程之前,不要使用RSpec (作为一个BDD框架)。
https://stackoverflow.com/questions/30462832
复制相似问题