|
- Feature: Retry failing tests
-
- Retry gives you a way to get through flaky tests that usually pass after a few runs.
- This gives a development team a way forward other than disabling a valuable test.
-
- - Specify max retry count in option
- - Output information to the screen
- - Output retry information in test report
-
- Questions:
- use a tag for flaky tests? Global option to retry any test that fails?
-
- Background:
- Given a scenario "Fails-once" that fails once, then passes
- And a scenario "Fails-twice" that fails twice, then passes
- And a scenario "Solid" that passes
-
- Scenario: Retry once, so Fails-once starts to pass
- Given a scenario "Fails-forever" that fails
- When I run `cucumber -q --retry 1 --format summary`
- Then it should fail with:
- """
- 4 scenarios (2 failed, 1 flaky, 1 passed)
- """
- And it should fail with:
- """
- Fails-forever
- Fails-forever ✗
- Fails-forever ✗
-
- Fails-once feature
- Fails-once ✗
- Fails-once ✓
-
- Fails-twice feature
- Fails-twice ✗
- Fails-twice ✗
-
- Solid
- Solid ✓
- """
-
- Scenario: Retry twice, so Fails-twice starts to pass too
- Given a scenario "Fails-forever" that fails
- When I run `cucumber -q --retry 2 --format summary`
- Then it should fail with:
- """
- 4 scenarios (1 failed, 2 flaky, 1 passed)
- """
- And it should fail with:
- """
- Fails-forever
- Fails-forever ✗
- Fails-forever ✗
- Fails-forever ✗
-
- Fails-once feature
- Fails-once ✗
- Fails-once ✓
-
- Fails-twice feature
- Fails-twice ✗
- Fails-twice ✗
- Fails-twice ✓
-
- Solid
- Solid ✓
- """
-
- Scenario: Flaky scenarios gives exit code zero in non-strict mode
- When I run `cucumber -q --retry 2 --format summary`
- Then it should pass with:
- """
-
-
- 3 scenarios (2 flaky, 1 passed)
- """
-
- Scenario: Flaky scenarios gives exit code zero in non-strict mode even when failing fast
- When I run `cucumber -q --retry 2 --fail-fast --format summary`
- Then it should pass with:
- """
-
-
- 3 scenarios (2 flaky, 1 passed)
- """
-
- Scenario: Flaky scenarios gives non-zero exit code in strict mode
- When I run `cucumber -q --retry 2 --format summary --strict`
- Then it should fail with:
- """
- Flaky Scenarios:
- cucumber features/fails-once_feature.feature:2
- cucumber features/fails-twice_feature.feature:2
-
- 3 scenarios (2 flaky, 1 passed)
- """
-
- Scenario: Retry each test but suspend retrying after 2 failing tests, so later tests are not retried
- Given a scenario "Fails-forever-1" that fails
- And a scenario "Fails-forever-2" that fails
- When I run `cucumber -q --retry 1 --retry-total 2 --format summary`
- Then it should fail with:
- """
- 5 scenarios (4 failed, 1 passed)
- """
- And it should fail with:
- """
- Fails-forever-1
- Fails-forever-1 ✗
- Fails-forever-1 ✗
-
- Fails-forever-2
- Fails-forever-2 ✗
- Fails-forever-2 ✗
-
- Fails-once feature
- Fails-once ✗
-
- Fails-twice feature
- Fails-twice ✗
-
- Solid
- Solid ✓
- """
|