rspec 的 before(:all) 运行 的具体时间是什么时候?

When exact does rspec's before(:all) run?

问题很简单,给定 运行 多个 *_spec.rb 文件的模式,before(:all) 运行 在所有文件之前或在每个文件之前执行一次?我知道每个例子之前 before(:each) 运行s 但我不清楚另一个。

如果它对我的用例有帮助,我想在 before(:all) 中初始化一个 selenium 实例并登录到一个网站。我只想在 运行 开始时登录一次,并在 运行 结束时销毁 selenium 实例,而不是 initialize/destroy 每个 *_spec.rb 文件 运行s.

我打算通过在 before(:all) 块中简单地放置一个 puts 语句来测试它,但它不会打印到屏幕,只是忽略了 puts 调用。

before(:all) 将在给定的 Describe 块中的示例之前 运行 一次。

此行为在 RSpec Core 2.0 documentation. According to the RSpec Core 3.2 documentation 中进行了描述,before(:context) 提供与 before(:all) 相同的功能。

A before(:all) 为其定义的示例组(即描述或上下文块)运行一次。为清楚起见,它被别名为 before(:context),以 rspec 3.

开头

听起来你在追求 before(:suite)