選択したサイト () では現在 CI Visibility は利用できません。

Datadog の CI メニューの下にある Tests ページは、テストの重要なメトリクスと結果を表示することで、CI 状態のテストファーストビューを提供します。これは、主に関連するコードで作業していることが主な理由で (それらが実行されているパイプラインをメンテナンスしていることは大きな理由ではない)、懸念されるパフォーマンスの問題やテストの失敗を調査するのに役立ちます。

セットアップ

Datadog でテストの視覚化を設定するための言語を選択します。


テストを確認する

Tests ページには、Branches ビューと Default Branches ビューが表示されます。

Branches ビュー

Tests ページの Branches ビューには、テスト結果を報告したすべてのテストサービスのすべてのブランチが一覧表示されます。このタブは、個々の開発者がコードブランチで実行されるテストのステータスをすばやく確認し、テストの失敗をトラブルシューティングするのに役立ちます。

このページでは、名前、テストサービス、またはコミット SHA でリストをフィルタリングしたり、My branches トグルを有効にして Git コンフィギュレーションで使用するメールアドレスを追加することで、ブランチ (自分で作成したコミットを少なくとも 1 つ含むブランチ) のみを表示したりできます。

テスト結果

リストには、ブランチごとに、最新のコミットのテスト結果が表示されます。具体的には、ステータスごとに分類されたテストの統合数 (再試行を考慮) と、コミットによって導入された新しい不安定なテストの数 (不安定なテストは、同じコミットで合格でも不合格でもあるテストとして定義されます) です。

テストスイートのパフォーマンス

最新のテストスイート実行の実時間、およびデフォルトのブランチの平均実時間との比較に関する情報もあります。_実時間_は、テストスイートが実行されている間に経過する現実の時間です。これは、テストが同時に実行されたときのすべてのテスト時間の合計よりも小さくなります。自分のブランチの実時間をデフォルトのブランチの実時間と比較すると、自分のコミットがテストスイートにパフォーマンス回帰をもたらしているかどうかを判断するのに役立ちます。

コミット作成者のアバターにカーソルを合わせると、最新のコミットに関する詳細情報が表示されます。

詳細な情報を調べる

行をクリックすると、このブランチでの最後のコミットのテスト結果 (ブランチを切り替えることもできます)、失敗したテストと最も一般的なエラー、遅いテスト、不安定なテスト、選択した時間枠のテスト実行の完全なリストなど、テストスイートの実行の詳細が表示されます。このテスト実行のリストをファセットでフィルタリングして、最も見たい情報にアクセスできます。

テスト実行の 1 つをクリックすると、テストトレースがフレームグラフまたはスパンリストとして表示されます。左側の Runs (n) リストを使用すると、同じコミットのテストを再試行するたびにトレースにすばやくアクセスできます。

サービス、リソース、ログ、ネットワークイベントへの接続を確認する

CI プロバイダーのリンクをクリックして、テストのリソース、サービス、または分析ページを調べます。また、完全なタグ情報と、関連するログイベントおよびネットワーク監視イベントへのリンクもあります。

Default Branches ビュー

テストサービス_は、プロジェクトやリポジトリなどに関連付けられたテストのグループです。これには、コードの個々のテストがすべて含まれ、オプションで_テストスイート (テストのフォルダーのようなもの) に編成されます。Tests ページの Default Branches ビューには、各テストサービスの_デフォルト_ブランチの集約された状態メトリクスが表示されます。このビューは、チームが時間の経過に伴うサービスの全体的な状態を理解するのに役立ちます。

Default Branches ビューには、Branches ビューと似た情報が表示されますが、デフォルトのブランチに適用され、最新のものでソートされます。現在の実時間と平均のデフォルトブランチの実時間を比較して、テストスイートのパフォーマンスが時間の経過とともにどのように推移しているかを示します。

行をクリックすると、デフォルトブランチで実行されたテストの分析が表示されます。これは、Branches ビューからのテスト実行の詳細を調べるのと同様です。

テストの実行を確認する

Test Runs ページでは、選択した時間枠でのすべての実行のリストを表示し、ファセットでフィルタリングし、個々のテスト実行の詳細を調べることができます。各テスト実行はトレースとして報告されます。インテグレーションテストの場合、通常の APM インスツルメンテーションを使用してデータストアまたはサードパーティサービスに対して行われた呼び出しが含まれます。

特定のテスト実行をクリックすると、各実行に対するテストのフレームグラフまたはスパンリストが表示されます。これは、Tests ページからテスト実行をクリックするのと同じです。

Analytics タブを使用して、グラフやトップリストをインタラクティブにプロットすることもできます。

テスト実行分析

サードパーティのサービスデータの表示方法

APM でインスツルメントされ、インテグレーションテストに関与するサードパーティサービスによって生成されたスパンは、APM に表示されます。Origin Service ファセットを使用し、インテグレーションテストで使用されるテストサービス名を選択して、インテグレーションテストの一部として生成されたスパンをフィルタリングできます。

テストスイートレベルの視覚化

テストに加え、CI Visibility ではプロジェクトのテストフェーズ全体を視覚化することができます。Test Runs ページでは、セッション、モジュール、スイート、テストといったテストレベルでフィルターをかけることができます。各テストレベルは、異なるレベルのテストの集計を表します。

テストスイートの視覚化

セッション

テストセッションは最も高いレベルの集計です。これらは yarn testmvn testdotnet test などのテストコマンドに一対一で対応しています。

モジュール

モジュールの定義は言語によって若干の違いがあります。

  • .NET では、テストモジュールは、同じユニットテストプロジェクトの下で実行されるすべてのテストをグループ化します。
  • Swift では、テストモジュールは、与えられたバンドルに対して実行されるすべてのテストをグループ化します。
  • JavaScript では、テストモジュールはテストセッションに一対一でマッピングされます。
  • Java では、テストモジュールは、同じ Maven Surefire/Failsafe または Gradle Test タスク実行で実行されるすべてのテストをグループ化します。

モジュールの例としては、SwiftLintFrameworkTests があり、これは SwiftLint のテストターゲットに対応します。

スイート

テストスイートは、同じコードのユニットを実行するテストのグループです。

テストスイートの例としては、src/commands/junit/__tests__/upload.test.ts があり、これは datadog-ci のテストファイルに相当します。

互換性

CI Visibility がサポートするすべての言語が、テストスイートレベルの視覚化をサポートしているわけではありません。

  • Swiftdd-sdk-swift-testing>=2.1.0 から完全にサポートされています。
  • .NETdd-trace-dotnet>2.16.0 から完全にサポートされています。
  • Javascriptdd-trace-js>=3.3.0 から限定的にサポートされています。
  • Java は dd-trace-java>=1.12.0 から完全にサポートされています。
  • JUnit レポートのアップロードはテストスイートレベルの視覚化をサポートしていません。

さらに、テストスイートレベルの視覚化は、エージェントレスモードでのみサポートされています。

CI テストデータについて伝達する

ダッシュボードノートブックでウィジェットを作成すると、テスト実行データを利用できます。

その他の参考資料