![]() |
VOOZH | about |
Test Optimization’s Auto Test Retries feature allows retrying failing tests up to N times to avoid failing your build due to flaky tests: a failing test case is retried either until it passes successfully or until there are no more retry attempts left (in which case the build fails).
Ensure Test Optimization is configured for your test runs.
dd-trace-java >= 1.34.0
The test framework compatibility is the same as Test Optimization Compatibility, with the exception of Scala Weaver.
After you set up Test Optimization, configure Auto Test Retries in CI/CD Optimization settings. You can apply the setting at the organization, repository, or test service level.
The default behavior of the feature is to retry any failing test case up to 5 times. This behavior can be fine-tuned with the following environment variables:
DD_CIVISIBILITY_FLAKY_RETRY_ONLY_KNOWN_FLAKES - if this environment variable is set to true, only the test cases that Test Optimization considers flaky are retried.DD_CIVISIBILITY_FLAKY_RETRY_COUNT - can be set to any non-negative number to change the maximum number of retries per test case.dd-trace-js >= v5.19.0
After you set up Test Optimization, configure Auto Test Retries in CI/CD Optimization settings. You can apply the setting at the organization, repository, or test service level.
The default behavior of the feature is to retry any failing test case up to 5 times. This behavior can be fine-tuned with the following environment variables:
DD_CIVISIBILITY_FLAKY_RETRY_ENABLED - set to 0 or false to explicitly disable retries even if the remote setting is enabled (default: true).DD_CIVISIBILITY_FLAKY_RETRY_COUNT - a non-negative number to change the maximum number of retries per test case (default: 5).datadog-ci-rb >= 1.4.0
After you set up Test Optimization, configure Auto Test Retries in CI/CD Optimization settings. You can apply the setting at the organization, repository, or test service level.
The default behavior of the feature is to retry any failing test case up to 5 times. This behavior can be fine-tuned with the following environment variables:
DD_CIVISIBILITY_FLAKY_RETRY_ENABLED - set to 0 or false to explicitly disable retries even if the remote setting is enabled (default: true)DD_CIVISIBILITY_FLAKY_RETRY_COUNT - a non-negative number to change the maximum number of retries per test case (default: 5).DD_CIVISIBILITY_TOTAL_FLAKY_RETRY_COUNT - a non-negative number to set the maximum total number of failed tests to retry (default: 1000)dd-trace-dotnet >= 3.4.0
After you set up Test Optimization, configure Auto Test Retries in CI/CD Optimization settings. You can apply the setting at the organization, repository, or test service level.
By default, the feature retries any failing test case up to 5 times. Customize the Auto Test Retries with the following environment variables:
DD_CIVISIBILITY_FLAKY_RETRY_ENABLED - set to 0 or false to explicitly disable retries even if the remote setting is enabled (default: true)DD_CIVISIBILITY_FLAKY_RETRY_COUNT - a non-negative number to change the maximum number of retries per test case (default: 5).DD_CIVISIBILITY_TOTAL_FLAKY_RETRY_COUNT - a non-negative number to set the maximum total number of failed tests to retry (default: 1000)orchestrion >= 0.9.4 + dd-trace-go >= 1.69.1
After you set up Test Optimization, configure Auto Test Retries in CI/CD Optimization settings. You can apply the setting at the organization, repository, or test service level.
By default, the feature retries each failing test case up to 5 times. Customize the Auto Test Retries with the following environment variables:
DD_CIVISIBILITY_FLAKY_RETRY_ENABLED - set to 0 or false to explicitly disable retries even if the remote setting is enabled (default: true)DD_CIVISIBILITY_FLAKY_RETRY_COUNT - a non-negative number to change the maximum number of retries per test case (default: 5).DD_CIVISIBILITY_TOTAL_FLAKY_RETRY_COUNT - a non-negative number to set the maximum total number of failed tests to retry (default: 1000)dd-trace-py >= 3.0.0 (pytest >= 7.2.0)
After you set up Test Optimization, configure Auto Test Retries in CI/CD Settings. You can apply the setting at the organization, repository, or test service level.
The default behavior of the feature is to retry any failing test case up to five times. Tests that originally fail either the original setup, teardown, or fixtures in Pytest, are not retried.
You can fine tune this behavior with the following environment variables:
DD_CIVISIBILITY_FLAKY_RETRY_ENABLED - set to 0 or false to explicitly disable retries even if the remote setting is enabled (default: true)DD_CIVISIBILITY_FLAKY_RETRY_COUNT - a non-negative number to change the maximum number of retries per test case (default: 5).DD_CIVISIBILITY_TOTAL_FLAKY_RETRY_COUNT - a non-negative number to set the maximum total number of failed tests to retry (default: 1000)dd-sdk-swift-testing >= 2.5.2
After you set up Test Optimization, configure Auto Test Retries in CI/CD Optimization settings. You can apply the setting at the organization, repository, or test service level.
The default behavior of the feature is to retry any failing test case up to 5 times. This behavior can be fine-tuned with the following environment variables:
DD_CIVISIBILITY_FLAKY_RETRY_ENABLED - set to 0 or false to explicitly disable retries even if the remote setting is enabled (default: true)DD_CIVISIBILITY_FLAKY_RETRY_COUNT - a non-negative number to change the maximum number of retries per test case (default: 5).DD_CIVISIBILITY_TOTAL_FLAKY_RETRY_COUNT - a non-negative number to set the maximum total number of failed tests to retry (default: 1000)In addition to automatically retrying failed tests, Failed Test Replay allows you to see local variable data in the topmost frame of the test error’s stack trace.
Failed Test Replay requires Auto Test Retries to be enabled, because it captures variable data from the retried test runs.
Enable Failed Test Replay in CI/CD Optimization settings under Mitigation > Failed Test Replay. You can apply the setting at the organization, repository, or test service level.
Failed Test Replay creates logs that are sent to Datadog and appear alongside your regular application logs.
If you use Exclusion filters, ensure Failed Test Replay logs are not filtered:
source:dd_debugger tag. All Failed Test Replay logs have this source.After you enable this feature, you can see local variable data in failed tests:
jest-image-snapshot is incompatible with jest.retryTimes unless customSnapshotIdentifier is passed (see jest-image-snapshot docs) to toMatchImageSnapshot. Therefore, auto test retries do not work unless customSnapshotIdentifier is used.
You can query the retried tests in the Test Optimization Explorer: they have the @test.is_retry tag set to true (some of them may also have the @test.is_new set to true, which indicates they have been retried by the Early Flakiness Detection feature).
If you suspect there are any issues with Auto Test Retries, open CI/CD Optimization settings, find your repository or service, and toggle Auto Test Retries off.
Additional helpful documentation, links, and articles:
| |