使用RSpec和Guard进行测试时出错

时间:2013-06-28 20:42:20

标签: ruby-on-rails ruby rspec rvm guard

尝试通过RSpec / Guard进行测试,为新站点设置开发环境。一切似乎都在起作用并且测试通过了,但是它们后面跟着一个看似与测试本身无关的错误。到目前为止,Stack上类似问题的其他解决方案已被证明是不成功的。

09:04:47 - INFO - Guard uses TerminalNotifier to send notifications.
09:04:47 - INFO - Guard uses TerminalTitle to send notifications.
09:04:47 - INFO - Guard::RSpec is running
09:04:47 - INFO - Guard is now watching at '/Users/Dan/Sites/mailapp'
09:04:51 - INFO - Running: spec/models/user_spec.rb
..........................

Finished in 0.92598 seconds
26 examples, 0 failures

Randomized with seed 33813

/Users/Dan/.rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/test/unit.rb:49:in `process_args': invalid option: -f (OptionParser::InvalidOption)
    from /Users/Dan/.rvm/gems/ruby-1.9.3-p286@mailapp/gems/minitest-4.7.5/lib/minitest/unit.rb:1066:in `_run'
    from /Users/Dan/.rvm/gems/ruby-1.9.3-p286@jurnit/gems/minitest-4.7.5/lib/minitest/unit.rb:1059:in `run'
    from /Users/Dan/.rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/test/unit.rb:21:in `run'
    from /Users/Dan/.rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/test/unit.rb:326:in `block (2 levels) in autorun'
    from /Users/Dan/.rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/test/unit.rb:27:in `run_once'
    from /Users/Dan/.rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/test/unit.rb:325:in `block in autorun'

这是我当前的Gemfile

source 'https://rubygems.org'
ruby '1.9.3'

gem 'rails', '4.0.0.rc2'

gem 'mysql2'
gem 'jquery-rails'
gem 'turbolinks'
gem 'bcrypt-ruby', '3.0.1'

gem 'sass-rails', '~> 4.0.0.rc2'
gem 'coffee-rails', '~> 4.0.0'
gem 'uglifier', '>= 1.3.0'
gem 'bootstrap-sass', '2.3.1.0'
gem 'will_paginate', '3.0.4'
gem 'bootstrap-will_paginate', '0.0.9'

group :development, :test do
  gem 'rspec-rails'
  gem 'capybara'
  gem 'guard-rspec'
  gem 'terminal-notifier-guard'
  gem 'rb-fsevent'
end

group :test do
  gem 'factory_girl_rails'
  gem 'database_cleaner', github: 'bmabey/database_cleaner'
end

和Guardfile

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

  # Rails example
  watch(%r{^app/(.+)\.rb$})                           { |m| "spec/#{m[1]}_spec.rb" }
  watch(%r{^app/(.*)(\.erb|\.haml)$})                 { |m| "spec/#{m[1]}#{m[2]}_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 features specs
  watch(%r{^app/views/(.+)/.*\.(erb|haml)$})          { |m| "spec/features/#{m[1]}_spec.rb" }

  # Turnip features and steps
  watch(%r{^spec/acceptance/(.+)\.feature$})
  watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$})   { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'spec/acceptance' }
end

1 个答案:

答案 0 :(得分:0)

由于违规错误包含“test”和“unit”,我在/ spec目录中进行了一些搜索,发现在我的/spec/spec_helper.rb文件的顶部,我有以下要求:

require 'test/unit'

放下那条线,一切都落到了位置!