Commit 642bd8ce authored by Rémy Coutable's avatar Rémy Coutable

Allow to quarantine tests

Signed-off-by: default avatarRémy Coutable <remy@rymai.me>
parent f821a53b
...@@ -5,6 +5,18 @@ ...@@ -5,6 +5,18 @@
It's a test that sometimes fails, but if you retry it enough times, it passes, It's a test that sometimes fails, but if you retry it enough times, it passes,
eventually. eventually.
## Quarantined tests
Tests can be put in quarantine by assigning `:quarantine` metadata. This means
they will be skipped unless run with `--tag quarantine`. This can be used for
tests that are expected to fail while a fix is in progress (similar to how
[`skip` or `pending`](https://relishapp.com/rspec/rspec-core/v/3-8/docs/pending-and-skipped-examples)
can be used).
```
bin/rspec --tag quarantine
```
## Automatic retries and flaky tests detection ## Automatic retries and flaky tests detection
On our CI, we use [rspec-retry] to automatically retry a failing example a few On our CI, we use [rspec-retry] to automatically retry a failing example a few
......
...@@ -132,6 +132,11 @@ RSpec.configure do |config| ...@@ -132,6 +132,11 @@ RSpec.configure do |config|
Gitlab::ReleaseBlogPost.instance.instance_variable_set(:@url, 'https://about.gitlab.com') Gitlab::ReleaseBlogPost.instance.instance_variable_set(:@url, 'https://about.gitlab.com')
end end
config.before(:example, :quarantine) do
# Skip tests in quarantine unless we explicitly focus on them.
skip('In quarantine') unless config.inclusion_filter[:quarantine]
end
config.before(:example, :request_store) do config.before(:example, :request_store) do
RequestStore.begin! RequestStore.begin!
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment