问题很简单,给定一个运行多个*_spec.rb
文件的模式,before(:all)
在所有文件之前或每个文件之前运行一次?我知道before(:each)
在每个例子之前运行,但我不清楚另一个。
如果它对我的用例有帮助,我想在before(:all)
中初始化一个selenium实例并登录到一个网站。我只想在运行开始时登录一次并在运行结束时销毁selenium实例,而不是为运行的每个*_spec.rb
文件初始化/ destroy。
我打算通过简单地在puts
块中放置before(:all)
语句来测试它,但它不会打印到屏幕上,只是忽略puts
一起调用。
答案 0 :(得分:1)
before(:all)
为其定义的示例组(即描述或上下文块)运行一次。为清楚起见,从rspec 3开始,它的别名为before(:context)
。
听起来像是在before(:suite)
答案 1 :(得分:0)
before(:all)
将在给定Describe
块中的示例之前运行一次。
RSpec Core 2.0 documentation中描述了此行为。根据{{3}},before(:context)
提供与before(:all)
相同的功能。