我有一个 rspec 场景,如下所示:
scenario "some description of the scenario", :js => true, :slow => true, :wip => true do
sleep 60
...
但我想根据场景标记的内容有条件地调用 sleep
,例如:
scenario "some description of the scenario", :js => true, :slow => true, :wip => true do
sleep 60 if tags[:slow] && !tags[:wip]
...
如果有任何帮助,我将不胜感激。
最佳答案
因为 rspec 没有 scenario
方法,我猜你正在使用 capybara或 steak而且它实际上只是 it
的别名。在这种情况下,rspec 在内部将此代码块称为“示例”,您可以像这样访问元数据:
sleep 60 if example.metadata[:slow] # sleep if example is tagged with :slow => true
您还可以将元数据放在示例组中,即包含各种示例的 describe
block 。看到这个:http://relishapp.com/rspec/rspec-core/v/2-6/dir/metadata/user-defined-metadata
关于ruby-on-rails - Rspec:如何访问场景中标记的场景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6319794/