簡體   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