Intelligent Test Runner for Python (using pytest) in beta.
Compatibility
Intelligent Test Runner is only supported in the following versions and testing frameworks:
pytest>=6.8.0
From ddtrace>=1.18.0.
From Python>=3.7.
Requires coverage>=5.5.
Setup
Test Visibility setup
Prior to setting up Intelligent Test Runner, set up Test Visibility for Python. If you are reporting data through the Agent, use v6.40+/v7.40+.
UI activation
You, or a user in your organization with “Intelligent Test Runner Activation” permissions, must activate the Intelligent Test Runner on the Test Service Settings page.
Application key and permissions
The Intelligent Test Runner requires an application key mapped to an owner role with the CI Visibility Read (ci_visibility_read) permission.
You can override the Intelligent Test Runner’s behavior and prevent specific tests from being skipped. These tests are referred to as unskippable tests.
Why make tests unskippable?
The Intelligent Test Runner 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)
Designating tests as unskippable ensures that the Intelligent Test Runner runs them regardless of coverage data.
Compatibility
Unskippable tests are supported in the following versions and testing frameworks:
pytest
From ddtrace>=1.19.0
Marking tests as unskippable in pytest
You can use pytest’s skipif mark to prevent the Intelligent Test Runner from skipping individual tests or modules. Specify the condition as False, and the reason as "datadog_itr_unskippable".
Individual tests
Individual tests can be marked as unskippable using the @pytest.mark.skipif decorator as follows: