我如何同时运行多个ruby文件而不相互踩

  • 本文关键字:文件 ruby 何同时 运行 ruby rspec
  • 更新时间 :
  • 英文 :


我需要同时运行几个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)期间相互踩到。关闭,得到以下错误:

after钩子发生错误NoMethodError: undefined method quit' for nil:NilClass发生在C:/Automated_Testing/Indie/w_molap_1。Rb:31:inblock(2级)in '

我的问题是:我可以做一些不同的事情-也许在钩子设置之前的驱动程序中,允许我同时运行这些文件而不会相互踩到?

我认为你需要研究的是为parallel_test使用Ruby Gem。另外,您应该从test::Unit::TestCase扩展您的测试类,这样您就可以利用定义setup/teardown方法的优势。此外,每个测试方法应该被分离到单独的测试类中,以便parallel_test可以在单独的线程中运行每个测试方法。

同时,我会在开始时保持简单,在你掌握基本的多线程之前不要使用RSpec(作为BDD框架)。

相关内容

  • 没有找到相关文章

最新更新