ruby-on-rails - 如何在 guard for rspec 中运行单个测试?

标签 ruby-on-rails ruby rspec guard

我使用 guard-rspec在我的文件更改时自动运行必要的 rspec 测试,我喜欢它的工作方式。但是,当我调试包含多个测试的文件时,有时我只想重新运行单个测试。例如,从命令行使用 rspec:

rspec spec/requests/my_favorite_spec.rb:100

这将仅运行 my_favorite_spec.rb 中第 100 行的单个规范。

我尝试将以上内容输入守卫控制台,但它只是运行了所有测试,就好像我刚刚按下回车键一样。守卫控制台中是否有另一种语法来运行单个规范?

最佳答案

您必须参数化您的 spec/spec_helper.rb 文件以接受 :focus => true 语句。

RSpec.configure do |config|
  config.filter_run :focus => true
end

然后就可以使用了

it 'does something', :focus => true do
  //your spec
end

describe "something", :focus => true do
  before do
     sign in
     visit page
  end

  it { does something }
  it { does something else }
end

如果您打算采用这种方法,您可能还想确保在任何地方都没有 :focus => true 的情况下运行所有​​规范,使用 documented approach :

RSpec.configure do |config|
  config.run_all_when_everything_filtered = true
end

过滤器可以做很多事情;你可能想看看这个页面:https://relishapp.com/rspec/rspec-core/v/3-0/docs/filtering

关于ruby-on-rails - 如何在 guard for rspec 中运行单个测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21127370/

相关文章:

Ruby 尝试访问表兄弟类中的模块变量

ruby - 这个方法名/局部变量混合会发生什么?

ruby-on-rails - RailsApp 帮助 Rspec 教程 未定义的方法

ruby-on-rails - 使用 RSpec 的开源 Rails 项目

ruby-on-rails - 更新属性 before_save 回调不保存额外的属性

ruby-on-rails - "Web console is activated in the test environment"测试应用时

ruby - 在 Ruby 中使用哈希作为工厂

ruby-on-rails - 使用 Capybara 和 Rspec 进行功能测试 - 单击按钮不会重定向到正确的路线

ruby-on-rails - 使用 rbenv 安装 ruby​​ 2.2.3 后,它有一个不同的版本

ruby-on-rails - Ruby CSV#fetch 区分大小写