I’ve been using RSpec for years, but I had no idea about this flag until a coworker pointed it out today.
You can use bin/rspec -e
to run examples whose name matches a particular string:
-e, --example STRING
Run examples whose full nested names include STRING (may be
used more than once)
-E, --example-matches REGEX
Run examples whose full nested names match REGEX (may be
used more than once)
When is this useful? The place where I found it useful was a spec which we dynamically generate to run shitlists, which help us keep bad/outdated code patterns under control.
# spec/shitlists_spec.rb
SHITLISTS = [
DeprecatedMethodsShitlist,
EnsureStringColumnsLengthsValidatedShitlist,
ExecutableFilesShitlist,
...
]
SHITLISTS.each do |shitlist|
RSpec.describe shitlist do
it do
expect(described_class).to have_no_violations
end
end
end
This spec generates a bunch of examples dynamically. Running bin/rspec -e ExecutableFilesShitlist spec/shitlists_spec.rb
will
only run the one generated for ExecutableFilesShitlist
, which saves a ton of time if you don’t need to run the rest of them!