Because your examples should not change global state, you should not need to care about the order in which RSpec processes your .rb
files. However, in some cases you might want to know.
RSpec 3
- Runs
.rb
files in alphabetical order Show archive.org snapshot of their file paths by default (or when you specify--order defined
). - You run tests in random order by using
--order random
Show archive.org snapshot on the command line, or by putting it into your project's.rspec
file. - Note that both switches also affect the order the tests inside each file are run:
defined
runs tests in the order they are defined inside the file,random
shuffles tests inside each file randomly.
RSpec 2
- Runs
.rb
files in the order the files are stored on the hard drive. This is random for all intents and purposes. - Has no options to sort the loaded files in any way.
RSpec 1
- Runs
.rb
files in alphabetical order by default. This is a good default because it never differs for two clones of the same repository. - You can tell RSpec to run recently modified files first by calling it like
spec --loadby mtime --reverse spec
. This means that the order changes as you edit and save your files. - Note that if you run RSpec using
rake spec
(don't do that), it will look for default options in a filespec/support/spec.opts
. If you ever see that file, make sure you remove anyloadby
andreverse
options from it, or someone callingspec
gets a different processing order than someone callingrake spec
. Also, don't userake spec
. It's slow and does too many magic things.
Posted by Henning Koch to makandra dev (2011-06-12 12:36)