- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- Administrator's Guide
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
Test Impact Analysis is supported in dd-java-agent >= 1.27.0
.
The following test frameworks are supported:
Prior to setting up Test Impact Analysis, set up Test Optimization for Java. If you are reporting data through the Agent, use v6.40 and later or v7.40 and later.
Intelligent Test Runner Activation (intelligent_test_runner_activation_write
) 권한이 있는 조직의 사용자는 Test Service Settings 페이지에서 Intelligent Test Runner를 활성화해야 합니다.
After completing setup, run your tests as you normally do:
DD_CIVISIBILITY_ENABLED=true \
DD_ENV=ci \
DD_SERVICE=my-java-app \
GRADLE_OPTS=-javaagent:$DD_TRACER_FOLDER/dd-java-agent.jar \
./gradlew clean test
DD_CIVISIBILITY_ENABLED=true \
DD_ENV=ci \
DD_SERVICE=my-java-app \
MAVEN_OPTS=-javaagent:$DD_TRACER_FOLDER/dd-java-agent.jar \
mvn clean verify
DD_CIVISIBILITY_ENABLED=true \
DD_ENV=ci \
DD_SERVICE=my-java-app \
JAVA_TOOL_OPTIONS=-javaagent:$DD_TRACER_FOLDER/dd-java-agent.jar \
// run your tests
You can override the Test Impact Analysis behavior and prevent specific tests from being skipped. These tests are referred to as unskippable tests.
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:
Unskippable tests are supported in the following versions and testing frameworks:
Add a JUnit Tag
with the value datadog_itr_unskippable
to your test case to mark it as unskippable.
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Tags;
import org.junit.jupiter.api.Test;
public class MyTestSuite {
@Test
@Tags({@Tag("datadog_itr_unskippable")})
public void myTest() {
// ...
}
}
Add a JUnit Tag
with the value 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.
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Tags;
import org.junit.jupiter.api.Test;
@Tags({@Tag("datadog_itr_unskippable")})
public class MyTestSuite {
@Test
public void myTest() {
// ...
}
}
Add a JUnit Category
with the value datadog_itr_unskippable
to your test case to mark it as unskippable.
You do not have to create the datadog_itr_unskippable
for every test case or test suite, one category is enough for the entire project.
import org.junit.Test;
import org.junit.experimental.categories.Category;
public class MyTestSuite {
@Category(datadog_itr_unskippable.class)
@Test
public void myTest() {
// ...
}
public interface datadog_itr_unskippable {}
}
Add a JUnit Tag
with the value datadog_itr_unskippable
to your test suite to mark it as unskippable.
You do not have to create the datadog_itr_unskippable
for every test case or test suite, one category is enough for the entire project.
If a suite is marked as unskippable, none of the test cases from that suite can be skipped by Test Impact Analysis.
import org.junit.Test;
import org.junit.experimental.categories.Category;
@Category(MyTestSuite.datadog_itr_unskippable.class)
public class MyTestSuite {
@Test
public void myTest() {
// ...
}
public interface datadog_itr_unskippable {}
}
Add a group with the value datadog_itr_unskippable
to your test case to mark it as unskippable.
import org.testng.annotations.Test;
public class MyTestSuite {
@Test(groups = "datadog_itr_unskippable")
public void myTest() {
// ...
}
}
Add a group with the value 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.
import org.testng.annotations.Test;
@Test(groups = "datadog_itr_unskippable")
public class MyTestSuite {
@Test
public void myTest() {
// ...
}
}
Add a spock.lang.Tag
with the value datadog_itr_unskippable
to your test case to mark it as unskippable.
import spock.lang.Specification
import spock.lang.Tag
class MyTestSuite extends Specification {
@Tag("datadog_itr_unskippable")
def myTest() {
// ...
}
}
Add a spock.lang.Tag
with the value 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.
import spock.lang.Specification
import spock.lang.Tag
@Tag("datadog_itr_unskippable")
class MyTestSuite extends Specification {
def myTest() {
// ...
}
}
Add datadog_itr_unskippable
tag to your gherkin scenario to mark it as unskippable.
Feature: My Feature
@datadog_itr_unskippable
Scenario: My Scenario
# ...
Add datadog_itr_unskippable
tag to your gherkin feature to mark it as unskippable.
If a feature is marked as unskippable, none of the scenarios from that feature can be skipped by Test Impact Analysis.
@datadog_itr_unskippable
Feature: My Feature
Scenario: My Scenario
# ...
Create a Tag
with the value datadog_itr_unskippable
and tag your test case with it:
import org.scalatest.Tag
import org.scalatest.flatspec.AnyFlatSpec
object ItrUnskippableTag extends Tag("datadog_itr_unskippable")
class MyTestSuite extends AnyFlatSpec {
"myTest" should "assert something" taggedAs ItrUnskippableTag in {
// ...
}
}