Using the --order option

Use the --order option to tell RSpec how to order the files, groups, and examples. The available ordering schemes are defined and rand.

defined is the default, which executes groups and examples in the order they are defined as the spec files are loaded, with the caveat that each group runs its examples before running its nested example groups, even if the nested groups are defined before the examples.

Use rand to randomize the order of groups and examples within the groups. Nested groups are always run from top-level to bottom-level in order to avoid executing before(:context) and after(:context) hooks more than once, but the order of groups at each level is randomized.

With rand you can also specify a seed.

Use recently-modified to run the most recently modified files first. You can combine it with --only-failures to find the most recent failing specs. Note that recently-modified and rand are mutually exclusive.

Example usage

The defined option is only necessary when you have --order rand stored in a config file (e.g. .rspec) and you want to override it from the command line.

--order defined
--order rand
--order rand:123
--seed 123 # same as --order rand:123
--order recently-modified