【问题标题】:How to run specs after Sinatra app reloads using Guard?使用 Guard 重新加载 Sinatra 应用程序后如何运行规范?
【发布时间】:2014-09-22 21:45:25
【问题描述】:

使用保护架重新加载应用程序。它会正确重新加载应用程序,但是重新加载后如何运行规范?

guard :rack do
  watch('Gemfile.lock')
  watch(%r{^app/(.+)\.rb$})

  callback(:reload) { `rspec spec` }
end

回调应该在应用更新后运行规范,但似乎没有发生任何事情。

配置:

Capybara.configure do |config|
  config.run_server = false
  config.default_driver = :poltergeist
  config.app_host = 'http://localhost:9292'
end

同样使用guard-rspec:

guard :rspec, cmd: 'rspec spec' do
  watch(%r{^spec/(.+)\.rb$}) { 'spec' }
end

参考:Guard Docs

【问题讨论】:

    标签: rspec sinatra capybara rack guard


    【解决方案1】:

    感谢安东尼,我想通了。 rspec 防护必须机架防护之后:

    guard :rack do
      watch('Gemfile.lock')
      watch(%r{^app/(.+)\.rb$})
    end
    
    guard :rspec, cmd: 'rspec spec' do
      watch(%r{^app/(.+)\.rb$})  { 'spec' }
      watch(%r{^spec/(.+)\.rb$}) { 'spec' }
    end
    

    【讨论】:

      【解决方案2】:

      我们在工作中使用gaurd-rspec,这很棒。配置很简单:

      guard :rspec, cmd: 'rspec' do
        watch(%r{^spec/.+_spec\.rb$})
        watch(%r{^lib/(.+)\.rb$})     { |m| "spec/lib/#{m[1]}_spec.rb" }
        watch('spec/spec_helper.rb')  { "spec" }
      end
      

      【讨论】:

      • 其实我也在使用guard-rspec。但我在 RSpec 之外运行 Sinatra。
      猜你喜欢
      • 2011-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-28
      • 1970-01-01
      • 2018-02-28
      • 1970-01-01
      相关资源
      最近更新 更多