【发布时间】:2015-06-09 05:27:19
【问题描述】:
我需要同时运行几个 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 hook 特别是@driver.close 期间相互踩踏,我收到以下错误:
在后挂钩 NoMethodError: undefined method quit' for nil:NilClass 中发生错误 发生在 C:/Automated_Testing/Indie/w_molap_1.rb:31:inblock (2 levels) in '
我的问题是:我可以做些什么不同的事情 - 也许在挂钩设置之前的驱动程序中,这将允许我同时运行这些文件而不会互相踩踏?
【问题讨论】:
-
如何同时运行它们?执行方法可能会影响您的选择。
-
@Jesper - 我采用两种方法之一 - 每组十个测试都是它自己的 .rb 文件,我可以将它们全部突出显示并点击“输入”,它们都开始运行。或者我更喜欢的方式是,我使用批处理文件同时调用每个 rb 文件 - 它等待它们全部完成它们通过电子邮件向我发送控制台输出的日志。