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-trace>= 2.22.0 (execute dd-trace --version to get the version of the tool).

Setup

Test Optimization

Prior to setting up Test Impact Analysis, set up Test Optimization for .NET. If you are reporting data through the Agent, use v6.40 and later or v7.40 and later.

Activer la fonctionnalité Intelligent Test Runner pour le service de test

Pour activer la fonctionnalité Intelligent Test Runner, accédez à la page Test Service Settings. Vous devez disposer de l’autorisation d’activation d’Intelligent Test Runner (intelligent_test_runner_activation_write).

Fonctionnalité Intelligent Test Runner activée dans les paramètres du service de test à la section CI de Datadog.

Run tests with Test Impact Analysis enabled

After completing setup, run your tests as you normally do by using dotnet test or VSTest.Console.exe:

dd-trace ci run --dd-service=my-dotnet-app --dd-env=ci -- dotnet test
dd-trace ci run --dd-service=my-dotnet-app --dd-env=ci -- VSTest.Console.exe {test_assembly}.dll

Disable skipping for specific tests

You can override the Test Impact Analysis 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).
  • Designating tests as unskippable ensures that Test Impact Analysis runs them regardless of coverage data.

Marking tests as unskippable

Individual test case

Add a XUnit TraitAttribute with the key datadog_itr_unskippable to your test case to mark it as unskippable.

using Xunit;
using Xunit.Abstractions;

public class MyTestSuite
{
  [Fact]
  [Trait("datadog_itr_unskippable", null)]
  public void MyTest()
  {
    // ...
  }
}

Test suite

Add a XUnit TraitAttribute with the key datadog_itr_unskippable to your test suite to mark it as unskippable.

If a suite is marked as unskippable, none of the test cases from that suite can be skipped by Test Impact Analysis.

using Xunit;
using Xunit.Abstractions;

[Trait("datadog_itr_unskippable", null)]
public class MyTestSuite
{
  [Fact]
  public void MyTest()
  {
    // ...
  }
}

Individual test case

Add a NUnit PropertyAttribute with the key datadog_itr_unskippable and a non-null value (for example, string.Empty) to your test case to mark it as unskippable.

using NUnit.Framework;

public class MyTestSuite
{
  [Test]
  [Property("datadog_itr_unskippable", "")]
  public void MyTest()
  {
    // ...
  }
}

Test suite

Add a NUnit PropertyAttribute with the key datadog_itr_unskippable and a non-null value (for example, string.Empty) to your test suite to mark it as unskippable.

If a suite is marked as unskippable, none of the test cases from that suite can be skipped by Test Impact Analysis.

using NUnit.Framework;

[Property("datadog_itr_unskippable", "")]
public class MyTestSuite
{
  [Test]
  public void MyTest()
  {
    // ...
  }
}

Individual test case

Add a MsTestV2 TestPropertyAttribute with the key datadog_itr_unskippable to your test case to mark it as unskippable.

using Microsoft.VisualStudio.TestTools.UnitTesting;

[TestClass]
public class MyTestSuite
{
  [TestMethod]
  [TestProperty("datadog_itr_unskippable", null)]
  public void MyTest()
  {
    // ...
  }
}

Further Reading