ruby-on-rails - Rspec:如何访问场景中标记的场景?

标签 ruby-on-rails rspec rspec2 rspec-rails

我有一个 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 方法,我猜你正在使用 capybarasteak而且它实际上只是 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/

相关文章:

ruby-on-rails-3 - Rails 生成器不会在 Rails 3.2.9 引擎中创建 rspec 文件/目录

ruby-on-rails - Gemfile 中分支名称中的斜杠导致错误

ruby-on-rails - 如何在 Rails 4.2 应用程序中按订阅计划类型设置 ActiveRecord 限制?

ruby-on-rails-4 - 在 RSpec View 测试中的 HTML 元素中搜索

ruby - 将消息发送到 Ruby 中的全局缓冲区

ruby-on-rails - Rails Rspec 测试中的多重期望

ruby-on-rails - 如何使用 Rspec 测试 View 中 textarea 的内容?

sql - 选择所有用户,按评论数排序

ruby-on-rails - rails/PaperTrail : approving edits