Posted over 5 years ago. Visible to the public.

Order in which RSpec processes .rb files

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 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.

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.

By refactoring problematic code and creating automated tests, makandra can vastly improve the maintainability of your Rails application.

Author of this card:

Henning Koch
About this deck:
We are makandra and do test-driven, agile Ruby on Rails software development.
License for source code
Posted by Henning Koch to makandropedia