繁体   English   中英

如何在watir测试套件结束时关闭浏览器?

[英]How to close browser at the end of watir test suite?

使用ruby的watir来测试Web应用程序会使浏览器在最后打开。 在线的一些建议是,为了进行真正的单元测试,你应该在每次测试时(在拆解调用中)打开和关闭浏览器,但这是缓慢而毫无意义的。 或者他们做这样的事情:

 def self.suite
   s = super
   def s.afterClass
     # Close browser
   end

   def s.run(*args)
     super
     afterClass
   end
   s
 end

但这会导致摘要输出不再显示(仍应显示“100次测试,100次断言,0次失败,0次错误”之类的事情)。

在测试结束时,如何让ruby或watir关闭浏览器?

如果您想在RSpec规范中使用唯一的浏览器,那么您可以使用:suite hooks而不是:all将在每个示例组中创建和关闭浏览器:

RSpec.configure do |config|
  config.before :suite do
    $browser = Watir::Browser.new
  end

  config.after :suite do
    $browser.close if $browser
  end
end

但是,如果由于某些奇怪的原因您不想自己使用RSpec或任何测试框架,那么您可以使用Ruby的内核#at_exit方法:

# somewhere
$browser = Watir::Browser.new
at_exit { $browser.close if $browser }

# other code, whenever needed
$browser.foo

我仍然建议使用测试框架,而不是从头开始创建自己的测试框架。

RSpec和Cucumber都有“毕竟”的钩子。

RSpec的:

describe "something" do
  before(:all) do
    @browser = Watir::Browser.new
  end
  after(:all) do
    @browser.close
  end
end

env.rb )中的黄瓜:

browser = Watir::Browser.new

#teh codez

at_exit do
  browser.close
end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM