1
0
mirror of https://github.com/jbranchaud/til synced 2026-01-03 07:08:01 +00:00

Add Configure Tests To Run In Random Order as an RSpec TIL

This commit is contained in:
jbranchaud
2024-08-22 11:19:50 -05:00
parent bd49b31bb0
commit df3492d4ef
2 changed files with 35 additions and 1 deletions

View File

@@ -0,0 +1,33 @@
# Configure Tests To Run In Random Order
By default, an RSpec test suite is going to run in a predictable, sequential
order, every time.
When testing the parts of a complex Rails app that have all kinds of test data
that needs to be set up, I prefer to have my tests always run in a random
(repeatable with a seed) order. This way I'm more likely to catch sooner,
rather than later, bugs that are hidden by passing tests due to test data setup
that happens to work in a specific order.
RSpec can be configured to run tests in a random, seedable order in the
`spec_helper.rb` file.
```ruby
RSpec.configure do |config|
config.order = :random
end
```
Whenever you run your test suite, the first thing you'll see is a message like
this:
```
Randomized with seed 7011
```
That seed number can be used to re-run the suite in a repeatable order when you
need to do so to track down an order-dependent failing test.
```bash
$ be rspec --seed 7011
```