I recently ran into a problem with autotest (ZenTest) after upgrading to Rails 2.1 and RSpec 1.4.1. Solving it was annoying, so I hope I can save others some trouble. Here’s the problem:
With RSpec, autotest hangs
Before the upgrade, I could run my specs just fine using the plain autotest command, but after the upgrade autotest just hangs:
$ autotest loading autotest/rails
This is on a system running Mac OS X Tiger (10.4), Rails 2.1.0, RSpec 1.4.1, and ZenTest 3.10.0. Strangely, my friend Long could run autotest fine on a virtually identical system (so you may not run into this problem), but for me this only increased the frustration. After much hand-wringing (and a lot of Google searching), I finally found a Rails Forum post with a solution:
$ RSPEC=true autotest
Then autotest runs normally.
Restoring the old RSpec/autotest behavior
To get the old behavior, you can include the RSPEC variable in your environment rather than putting it explicitly on the command line. For example, on a system running bash, export the RSPEC variable as follows:
file: ~/.bashrc
export RSPEC=true
Then source it:
$ . ~/.bashrc
Now autotest should run as before:
$ autotest
Voilà (I hope)!
UPDATE: Since making this post, I’ve learned that RSpec now ships with a program called autospec that solves the same problem; just run
$ autospec
and the specs should run as expected.