I like to run my Rspec tests with Spork running in a separate tab. I usually run my tests using rspec spec, by which I intend to say “search recursively and run everything in the spec folder.”
I’ve recently realized that this does not actually run all my tests. I now have a spec file in spec/requests which isn’t being run. I know this because I’ve edited one of the tests to raise an error, and run the following:
rspec spec– no error raised.rspec spec/requests– still no error raised, and0 examples, 0 failures!rspec spec/requests/my_controller.rb– bingo.17 examples, 1 failureand the failure has my error message.
Why isn’t Rspec finding all my test files? Is this a matter of configuration, or do I need to use a different command to run my tests?
I need to run all my tests at once to ensure that I’m not introducing regressions.
(Not using Spork makes no difference, by the way.)
Rspec should already look recursively through the directory you named and find all tests. Note however, that it’s looking for files ending in
_spec.rb. Maybe some of your files are not named correctly?If you need to be more specific about which files it should find, you can also use the
--patternoption. For example:rspec --pattern spec/requests/*_spec.rb. (Option--patternis equal to-P. Taken fromrspec --help)