autotest shows blank - ruby-on-rails

I installed the autotest gem and intend to use it with rspec. The problem is, when I run autotest under my rails app, all I see is :
railsapp$ autospec
loading autotest/rails_rspec
And its stuck there until I Ctrl-C out of it. Nothing changes even if I change a rspec test or code.
Here's my ~/.autotest
require "autotest/restart"
require 'redgreen/autotest'
require 'autotest/fsevent'
require "autotest/growl"

I had the same problem. I was eventually able to get everything working by making sure I was on the latest (beta, if necessary) versions of rspec, rspec-rails, autotest, and autotest-rails, and putting the following in autotest/discovery.rb:
Autotest.add_discovery { "rails" }
Autotest.add_discovery { "rspec2" }
Here's the blog post that got me started in the right direction.

I had the same problem, and this fixed it:
"Make sure you have a .rspec file in the project root. That tells RSpec to tell Autotest to load RSpec’s autotest extension."
ref: https://github.com/rspec/rspec/wiki/autotest
It seems as if my .rspec file had gotten deleted when messing around with git.

Cd into app directory and run the command: AUTOFEATURE=true autospec
To stop this process ^C twice

I had the same problem with Rails 2.3.2 except that I'm not using RSpec. In my case, installing the autotest-rails-pure gem got it working for me. Maybe autotest requires the correct plugin in order to detect a test within a file.

Related

Rspec failing while upgrading RubyGem-rails to 4.2.x

I am upgrading rails from 4.1 to 4.2.x. I am facing multiple issues while upgrading it. As of now rspec is failing with following error :
Warning: you should require 'minitest/autorun' instead.
Warning: or add 'gem "minitest"' before 'require "minitest/autorun"'
I have also added minitest in my Gemfile.
Can you please help me in figuring out on how this can be removed?
Update:
My rspec_helper.rb has require 'rspec/autorun'. I replaced it with require 'minitest/autorun'. I still run into same error.
require "rspec/autorun" was deprecated in RSpec 3, so is not the solution to your problem. You should remove it. You should also remove minitest from your Gemfile. It's likely being pulled in by a dependency, having you explicitly specify it won't change anything.
minitest and rspec are two separate libraries. The warning is not coming from rspec. I'm guessing you're just seeing it when you run your test suite. My best guess is that one of your test libraries is loading minitest some how. It's a big hammer, but you can try installing all your gems to a local cache bundle install --vendor and then grepping for minitest: grep minitest/autorun -R . to try and locate.

Error when trying to run rspec: `require': cannot load such file -- rails_helper (LoadError)

I am trying to run rspec for Ruby on Rails. I am running Rails 4.1.1. I have installed the gem, have established a spec folder with some tests. I have created a directory through $ rails g rspec:install
I tried to create a testing database through $ rake db:test:prepare but it throws this error message:
WARNING: db:test:prepare is deprecated. The Rails test helper now maintains your test
schema automatically, see the release notes for details.
So I ended up looking at this stack overflow post, and of the two options, the one that worked was:
rake db:schema:load RAILS_ENV=test
So, now I need to run rspec.
When I run $ rspec spec from the command line I get this error:
/Users/myname/.rbenv/versions/2.1.1/lib/ruby/2.1.0/rubygems/core_ext/
kernel_require.rb:55:in `require': cannot load such file -- rails_helper (LoadError)
How do I resolve this so that I can start running tests?
There is some problem with rspec V3. But in your case you are using V2.
change
require 'rails_helper'
to
require 'spec_helper'
Other description find here https://teamtreehouse.com/forum/problem-with-rspec
For V3 :
If someone using rspec V3 then similar error occurs when generator not run. So before trying anything run generator.
rails generate rspec:install
If you are getting a huge list of warning on your console. Then you need to remove --warnings from .rspec file.
I actually just had this error on rails 4 with rspec 3, but in my case I forgot to run the generator:
rails generate rspec:install
Also I had to remove warnings from .rspec, as stated by one of rpsec developers
For me, the problem was due to a different "rspec-support" version loaded and activated. I solved by prepending a "bundle exec":
bundle exec rspec
Always remember to run the
rspec or the bundle exec rspec from the root of your project.
Something like:
bundle exec rspec spec/features/file_test_spec.rb
For newer versions (3.5), if you need to run the generator, rails generate rspec:install doesn't work for me. I used:
rspec --init
Creates .rspec and spec/spec_helper.rb.
EDIT:
Just in case, I found out that I installed rspec gem for ruby, not the one for Rails, so rspec:install wasn't available. Should use https://github.com/rspec/rspec-rails.
Sometimes you need to run rspec command from Project's parent directory
Please install the following gem:
gem install 'rspec-rails'
And then run:
rails generate rspec:install
This will generate the spec folder and rails_helper.rb and spec_helper.rb. Your error should be taken care once this is done.
None of these suggestions worked for me on Rails 4.2.0 with rspec-rails 3.2.3.
Instead, I placed the following two lines at the top of my spec file:
require 'rails_helper'
require 'spec_helper'
Now I can execute rspec spec/features/my_spec.rb.
I had the same error but there was no reference to rails_helper anywhere and we weren't even using rails.
However, I eventually found that my ~/.rspec was requiring rails_helper (presumably from creating rails app in the past) which was causing the issue ...
$ cat ~/.rspec
--color
--format documentation
--require spec_helper
--require rails_helper
The fix is as simple as removing that line. Hope this helps someone else grappling with the same issue!
One possibility that worked for me is to make sure you're requiring spec_helper. RubyMine can default require rspec and this can sometimes lead to this error.
You may also have your file named incorrectly. Make sure it ends in _spec.rb. I had misspelled my file to end in _soec.rb and was scratching my head for a while...
I got the error you described when running a controller test. However, when I ran a model test, I got the true error. it ended up saying that the error was occuring because my database wasn't migrated. I fixed the error by running this command...
rake db:test:prepare
For someone. If you got that error when you trynna test a specific file. you might can like this
$ bundle exec rspec ./spec/features/user_login_spec.rb
$ bundle exec rspec ./spec/models/user_login_spec.rb

rspec spec invalid option: --default_path=spec

I'm getting a very strange error from rspec:
$ rspec spec
invalid option: --default_path=spec
I'm in a rails 4, ruby 2 app and I've updated everything to rspec-rails 3.0.0.beta. I've dumped and re installed rspec, .rspec, and spec_helper.rb.
You're probably using a different version of RSpec. The tests run fine from the balanced-ruby project. Make sure you have this line in the Gemfile:
gem "rspec", '~> 2.10'
Then run bundle install and finally try again with bundle exec rspec spec.
This is old but for whomever Googles this: in addition to checking your Gemfile, take a look at your repo's .rspec config file to see if there is an issue. If that doesn't fix it, check your environment to see if you have a global .rspec config file. Try cat ~/.rspec to see if you have one and if there are any issues with it. The global config caused issues for me.

I can't get autotest working with Rails 3.0.4 and MongoID 2.0.0.rc.7

I'm not able to get autotest started. It just hangs after it clears the console screen:
$ autotest
loading autotest/rails_rspec2
--------------------------------------------------------------------------------
there is nothing in test.log. Other searches for this problem on S.O. don't provide an answer.
autotest 4.4.6
ZenTest 4.4.2
Rails 3.0.4
MongoID 2.0.0.rc.7
Maybe there is another place I could be looking for autotest errors?
It appears that an update to autotest (or rspec?) something somewhere made the config info in my ~/.autotest file obsolete. So i commented everything out except for:
require 'autotest/fsevent'
require 'autotest/growl'
and now it appears to be working!
no more: Autotest.add_hook(:initialize) {|autotest| ...

Why is autotest not working?

I changed my .autotest file to use it with a Ruby-based project.
After that, when I wanted to use it for Rails, it is using the .autotest configuration settings I used for the Ruby project.
I uninstalled autotest and reinstalled it with no luck.
I also removed the .autotest file in the root directory but it is not working.
I'm trying to get autotest up and running as well. I just installed the gem. Running autotest or autotest --rails inside my rails app starts autotest, but it doesn't runs a single test. It reports that there aren't any.
UPDATE:
Just discovered I needed to install autotest-rails as well.
You should also install autotest-fsevent to make sure that autotest isn't polling all the time.
I've posted the results of my day of autotest at http://ryanbooker.com/archive/autotest-your-rails-apps.
The Short story:
sudo gem install ZenTest autotest-rails autotest-fsevent autotest-growl redgreen
Edit your ~/.autotest
# Include plugins
require 'autotest/fsevent'
require 'autotest/growl'
require 'redgreen/autotest' # yes this is correct
# Skip some paths
Autotest.add_hook :initialize do |autotest|
%w{.git .DS_Store ._* vendor}.each { |exception| autotest.add_exception(exception) }
false
end
You can launch autotest with:
cd myrailsapp
autotest
how are you launching autotest? If you use autotest --rails it should definitely work.
If you are using Rails 3.1 or higher, I highly recommend using guard for TDD with rspec. It works like magic. https://github.com/guard/guard

Resources