3

我不知道为什么 libnotify 停止显示有关已完成测试的信息。它显示 Spork 消息:“Rspec 已成功启动。” 但在那之后没有显示任何东西。我正在使用 Ubuntu。

guard 'spork', :cucumber => false, :rspec_env => { 'RAILS_ENV' => 'test' } do
  watch('config/application.rb')
  watch('config/environment.rb')
  watch(%r{^config/environments/.+\.rb$})
  watch(%r{^config/initializers/.+\.rb$})
  watch('spec/spec_helper.rb')
  watch(%r{^spec/support/.+\.rb$})
end

guard 'rspec', :version => 2, :cli => "--drb", :all_on_start => false, :all_after_pass => false do
  watch(%r{^spec/.+_spec\.rb$})
  watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
  watch('spec/spec_helper.rb') { "spec" }
  watch('spec/acceptance/acceptance_helper.rb') { "spec" }
  watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
  watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] }
  watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
  watch('config/routes.rb') { "spec/routing" }
  watch('app/controllers/application_controller.rb') { "spec/controllers" }
  # Capybara request specs
  watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) { |m| "spec/requests/#{m[1]}_spec.rb" }

  # watch(%r{^spec/support/(requests|controllers|mailers|models)_helpers\.rb}) { |m| "spec/#{m[1]}" }
  # watch(%r{^app/controllers/(.+)_(controller)\.rb}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/requests/#{m[1]}_spec.rb"] }
  watch(%r{^app/(.+)\.rb}) { |m| "spec/#{m[1]}_spec.rb" }
end

我的规范助手:***

当我初始化警卫时:

Running tests with args ["--color", "--format", "progress", "--format", "Guard::RSpec::Formatter::NotificationRSpec", "--out", "/dev/null", "--require", "/home/rege/.rvm/gems/ruby-1.9.2-p290/gems/guard-rspec-0.5.10/lib/guard/rspec/formatters/notification_rspec.rb", "spec"]...

如何诊断问题出在哪里?

编辑:

解决方案:https ://github.com/guard/guard-rspec/issues/90#issuecomment-3435651

4

1 回答 1

3

我也遇到了这个问题并安装了guard-spork(https://github.com/guard/guard-spork)gem(将它添加到我的rails Gemfile并安装了包)。然后,按照该页面上的说明,我运行了“guard init spork”,它在您的 Guardfile 中添加了一个“spork”部分,用于查看您可以观看的文件。

当我运行 bundle exec guard 时,它实际上确保 spork 也已启动并立即启动!我的测试文件更改正在运行并将结果发布到通知程序。作为记录,我使用带有 ruby​​ rvm 的 Ubuntu 11.10 64bit。我的 Gemfile 中的相关 gem 是 gem 'guard-rspec'、gem 'guard-spork'、gem 'rspec-rails'、gem 'watchr'、gem 'spork'、gem 'libnotify'。不确定是否所有相关。

您可以在 Hartl 的出色 Rails 教程http://ruby.railstutorial.org/chapters/static-pages#sec:guard(第 3.6.2 和 3.6.3 节)中找到我用于此的分步操作。

于 2012-04-22T17:08:13.570 回答