Test Impact Analysis for Swift
Cette page n'est pas encore disponible en français, sa traduction est en cours.
Si vous avez des questions ou des retours sur notre projet de traduction actuel,
n'hésitez pas à nous contacter.
Compatibility
Test Impact Analysis is only supported on dd-sdk-swift-testing
in versions 2.2.0
+.
Setup
Test Optimization
Prior to setting up Test Impact Analysis, set up Test Optimization for Swift. The code coverage option must also be enabled in the test settings of your scheme or test plan, or --enable-code-coverage
must be added to your Swift test command (if using a SPM target).
If you are reporting data through the Agent, use v6.40 and later or v7.40 and later.
Activer la fonctionnalité Test Impact Analysis pour le service de test
Pour activer la fonctionnalité Test Impact Analysis, accédez à la page Test Service Settings. Vous devez disposer de l’autorisation d’activation d’Intelligent Test Runner (intelligent_test_runner_activation_write
).
Run tests with Test Impact Analysis enabled
After completing setup, run your tests as you normally do.
Disabling skipping for specific tests
You can override the Test Impact Analysis’s behavior and prevent specific tests from being skipped. These tests are referred to as unskippable tests.
Why make tests unskippable?
Test Impact Analysis uses code coverage data to determine whether or not tests should be skipped. In some cases, this data may not be sufficient to make this determination.
Examples include:
- Tests that read data from text files
- Tests that interact with APIs outside of the code being tested (such as remote REST APIs)
- Tests that run external processes
- Tests that depend on global shared state (for example, caches created by a different test or process)
- Tests that use forked processes (per test code coverage only collects coverage for the main process)
- Integration tests that use capybara or selenium-webdriver
Designating tests as unskippable ensures that Test Impact Analysis runs them regardless of coverage data.
Marking tests as unskippable
import XCTest
import DatadogSDKTesting
class SomeTestCase: XCTestCase {
func testMethod() {}
}
extension SomeTestCase: ExtendableTaggedType {
static func extendableTypeTags() -> ExtendableTypeTags {
withTagger { tagger in
// Mark all class unskippable
tagger.set(type: .itrSkippable, to: false)
// Set only one method unskippable
tagger.set(instance: .itrSkippable, to: false, method: #selector(testMethod))
}
}
}
Temporarily disabling Test Impact Analysis
Test Impact Analysis can be disabled locally by setting the DD_CIVISIBILITY_ITR_ENABLED
environment variable to false
or 0
.
DD_CIVISIBILITY_ITR_ENABLED
(Optional)- Enable the Test Impact Analysis coverage and test skipping features
Default: (true)
Further Reading
Documentation, liens et articles supplémentaires utiles: