Using rake 0.9.2, rspec, expectations, mocks 2.6.0, rspec-core 2.6.4, rspec-rails 2.6.1
When I execute rake rails, or rspec spec path/to/spec I get normal output up until I'd expect to see the tests actually execute, then nothing further. I have to kill the process kill-9 %1 to terminate the task.
My gemfile:
source 'http://rubygems.org'
gem 'rails', '3.0.4'
gem 'rake', '0.9.2'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
# gem 'sqlite3-ruby', :require => 'sqlite3'
gem 'warden'
gem 'devise', "= 1.2.1"
gem 'devise_invitable'
gem 'mysql'
gem 'will_paginate', "~> 3.0.pre2"
gem 'acts-as-taggable-on'
gem 'acts_as_list'
gem 'activemerchant'
gem 'braintree'
gem 'bartt-ssl_requirement', :require => 'ssl_requirement'
gem "paperclip"
gem 'jeditable-rails'
gem 'rdiscount'
gem "nifty-generators", :group => :development
gem "exception_notification", :git => "git://github.com/rails/exception_notification", :require => 'exception_notifier'
# Deploy with Capistrano
gem 'capistrano'
gem 'capistrano-ext'
# Bundle gems for the local environment. Make sure to
# put test-only gems in this group so their generators
# and rake tasks are available in development mode:
group :development, :test do
gem 'webrat', ">=0.7.2"
gem "rspec-rails"
gem "ZenTest"
#gem "autotest"
#gem "autotest-rails"
gem "cucumber", :git => "git://github.com/cucumber/cucumber.git"
gem "database_cleaner", :git => 'git://github.com/bmabey/database_cleaner.git'
gem "cucumber-rails", ">= 0.3.2", :git => "git://github.com/cucumber/cucumber-rails.git"
gem 'factory_girl_rails'
gem "capybara"
#gem "capybara-envjs"
gem "launchy"
gem "spork"
#gem "ruby-debug"
gem "cancan"
end
Output from shell:
bill$ rake spec
/Users/bill/.rvm/gems/ruby-1.9.2-head/gems/bundler-1.0.0/lib/bundler.rb:197: warning: Insecure world writable dir /opt in PATH, mode 040777
/Users/bill/.rvm/rubies/ruby-1.9.2-head/bin/ruby -S bundle exec rspec ./spec/controllers/products_controller_spec.rb ./spec/controllers/roles_controller_spec.rb ./spec/controllers/users_controller_spec.rb ./spec/models/product_spec.rb ./spec/models/role_spec.rb ./spec/models/user_spec.rb
/Users/bill/.rvm/gems/ruby-1.9.2-head/gems/bundler-1.0.0/lib/bundler.rb:197: warning: Insecure world writable dir /opt in PATH, mode 040777
/Users/bill/.rvm/gems/ruby-1.9.2-head/gems/bundler-1.0.0/lib/bundler.rb:197: warning: Insecure world writable dir /opt in PATH, mode 040777
And then nothing further until I kill. Running with --trace doesn't provide any additional info. I'm sure I've got to be doing something simply silly. This appears to have started with recent issues I was having with rake versions, hence the upgrade to rake 0.9.2, although I have no concrete proof of any direct correlation. Thanks for any suggestions on how to debug this better.
Ugh, turns out it was an issue with one of the fixtures files. I don't use them, normally factories and stubs, and there was one with incomplete specification so it looks like rspec was just hanging on that. I figured it out by narrowing down the command to test different groups, like 'rake spec:models', which worked, then 'rake spec:controllers' which hung. Went into the generated specs and noticed the lines loading the fixtures, removed them and voila. Never dull...;-)
UPDATE: I found what seems to be a permenant solution to the problem from this question. I added the line below to my config/environments/test.rb
.
config.active_record.maintain_test_schema = false
I encountered this exact same problem. On a whim, I decided to run rake db:test:prepare
, which seemed to resolve it for me, at least temporarily. After running that, I can run rake
again without incident once, but if I run it again, I encounter the same problem as before. I seem to be stuck in this cycle now. This article helped shed some light on the subject, but I still don't know how to permanently solve the problem.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With