- 重要な情報
- はじめに
- 用語集
- ガイド
- エージェント
- インテグレーション
- OpenTelemetry
- 開発者
- API
- CoScreen
- アプリ内
- Service Management
- インフラストラクチャー
- アプリケーションパフォーマンス
- 継続的インテグレーション
- ログ管理
- セキュリティ
- UX モニタリング
- 管理
Java のための Intelligent Test Runner はベータ版です。
Intelligent Test Runner は dd-java-agent >= 1.22.0
でサポートされています。
以下のテストフレームワークがサポートされています。
Intelligent Test Runner をセットアップする前に、Test Visibility for Java をセットアップしてください。Agent を通してデータを報告する場合は、v6.40 以降または v7.40 以降を使用してください。
You, or a user in your organization with the Intelligent Test Runner Activation (intelligent_test_runner_activation_write
) permission, must activate the Intelligent Test Runner on the Test Service Settings page.
設定が完了したら、通常通りテストを実行します。
./gradlew cleanTest test -Dorg.gradle.jvmargs=\
-javaagent:$DD_TRACER_FOLDER/dd-java-agent.jar=\
dd.civisibility.enabled=true,\
dd.env=ci,\
dd.service=my-java-app
MAVEN_OPTS=-javaagent:$DD_TRACER_FOLDER/dd-java-agent.jar=\
dd.civisibility.enabled=true,\
dd.env=ci,\
dd.service=my-java-app \
mvn clean verify
Intelligent Test Runner の動作をオーバーライドして、特定のテストがスキップされないようにすることができます。これらのテストは、スキップできないテストと呼ばれます。
Intelligent Test Runner は、テストをスキップすべきかどうかを判断するために、コードカバレッジデータを使用します。場合によっては、このデータだけでは判断できないこともあります。
例:
スキップできないテストは、以下のバージョンとテストフレームワークでサポートされています。
値 datadog_itr_unskippable
を指定した JUnit Tag
をテストケースに追加して、スキップ不可とマークします。
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() {
// ...
}
}
値 datadog_itr_unskippable
を指定した JUnit Tag
をテストスイートに追加して、スキップ不可とマークします。
スイートがスキップ不可とマークされている場合、ITR によってそのスイートのテストケースをスキップすることはできません。
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() {
// ...
}
}
値 datadog_itr_unskippable
を指定した JUnit Category
をテストケースに追加して、スキップ不可とマークします。
すべてのテストケースやテストスイートに対して datadog_itr_unskippable
を作成する必要はありません。プロジェクト全体に対して 1 つのカテゴリーで十分です。
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 {}
}
値 datadog_itr_unskippable
を指定した JUnit Tag
をテストスイートに追加して、スキップ不可とマークします。
すべてのテストケースやテストスイートに対して datadog_itr_unskippable
を作成する必要はありません。プロジェクト全体に対して 1 つのカテゴリーで十分です。
スイートがスキップ不可とマークされている場合、ITR によってそのスイートのテストケースをスキップすることはできません。
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 {}
}
値 datadog_itr_unskippable
を指定したグループをテストケースに追加して、スキップ不可とマークします。
import org.testng.annotations.Test;
public class MyTestSuite {
@Test(groups = "datadog_itr_unskippable")
public void myTest() {
// ...
}
}
値 datadog_itr_unskippable
を指定したグループをテストスイートに追加して、スキップ不可とマークします。
スイートがスキップ不可とマークされている場合、ITR によってそのスイートのテストケースをスキップすることはできません。
import org.testng.annotations.Test;
@Test(groups = "datadog_itr_unskippable")
public class MyTestSuite {
@Test
public void myTest() {
// ...
}
}
値 datadog_itr_unskippable
を指定した spock.lang.Tag
をテストケースに追加して、スキップ不可とマークします。
import spock.lang.Specification
import spock.lang.Tag
class MyTestSuite extends Specification {
@Tag("datadog_itr_unskippable")
def myTest() {
// ...
}
}
値 datadog_itr_unskippable
を指定した spock.lang.Tag
をテストスイートに追加して、スキップ不可とマークします。
スイートがスキップ不可とマークされている場合、ITR によってそのスイートのテストケースをスキップすることはできません。
import spock.lang.Specification
import spock.lang.Tag
@Tag("datadog_itr_unskippable")
class MyTestSuite extends Specification {
def myTest() {
// ...
}
}
gherkin シナリオに datadog_itr_unskippable
タグを追加して、スキップ不可とマークします。
Feature: My Feature
@datadog_itr_unskippable
Scenario: My Scenario
# ...
gherkin 機能に datadog_itr_unskippable
タグを追加して、スキップ不可とマークします。
機能がスキップ不可とマークされている場合、その機能のシナリオは ITR によってスキップされることはありません。
@datadog_itr_unskippable
Feature: My Feature
Scenario: My Scenario
# ...
お役に立つドキュメント、リンクや記事: