Order in which RSpec processes .rb files

Updated . Posted . Visible to the public.

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 file spec/support/spec.opts. If you ever see that file, make sure you remove any loadby and reverse options from it, or someone calling spec gets a different processing order than someone calling rake spec. Also, don't use rake spec. It's slow and does too many magic things.
Henning Koch
Last edit
Jonas Schiele
License
Source code in this card is licensed under the MIT License.
Posted by Henning Koch to makandra dev (2011-06-12 12:36)