0xd*_*d00 5 ruby unit-testing watir
使用ruby的watir测试Web应用程序会使浏览器在最后打开.在线的一些建议是,为了进行真正的单元测试,你应该在每次测试时(在拆解调用中)打开和关闭浏览器,但这是缓慢而毫无意义的.或者他们做这样的事情:
def self.suite
s = super
def s.afterClass
# Close browser
end
def s.run(*args)
super
afterClass
end
s
end
Run Code Online (Sandbox Code Playgroud)
但这会导致摘要输出不再显示(仍应显示"100次测试,100次断言,0次失败,0次错误").
在测试结束时,如何让ruby或watir关闭浏览器?
Jar*_*man 11
如果您想在RSpec规范中使用唯一的浏览器,那么您可以使用:suite钩子而不是:all在每个示例组中创建和关闭浏览器:
RSpec.configure do |config|
config.before :suite do
$browser = Watir::Browser.new
end
config.after :suite do
$browser.close if $browser
end
end
Run Code Online (Sandbox Code Playgroud)
但是,如果由于某些奇怪的原因您不想自己使用RSpec或任何测试框架,那么您可以使用Ruby的内核#at_exit方法:
# somewhere
$browser = Watir::Browser.new
at_exit { $browser.close if $browser }
# other code, whenever needed
$browser.foo
Run Code Online (Sandbox Code Playgroud)
我仍然建议使用测试框架,而不是从头开始创建自己的测试框架.
RSpec 和 Cucumber 都有“毕竟”的钩子。
R规格:
describe "something" do
before(:all) do
@browser = Watir::Browser.new
end
after(:all) do
@browser.close
end
end
Run Code Online (Sandbox Code Playgroud)
( ) 中的黄瓜env.rb:
browser = Watir::Browser.new
#teh codez
at_exit do
browser.close
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9522 次 |
| 最近记录: |