Datadog における Test Visibility

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

概要

Test Visibility は、テストからの重要なメトリクスと結果を表示することで、CI 状態のテストファーストビューを提供します。パイプラインを保守しているのではなく、関連するコードを保守しているため、最も気になるパフォーマンス問題やテストの失敗を調査するのに役立ちます。

送信 - Agent チェック


テストに加えて、Test Visibility はプロジェクトのテストフェーズ全体を視覚化します (Ruby を除く)。

サポートされる機能

ダッシュボードモニタリングJavascript設定エクスプローラーExadataJUnit Xml
正確な時刻/継続時間結果

テスト開始時刻と継続時間におけるマイクロ秒単位の分解能

インテグレーションテストの分散型トレース

Datadog でインスツルメンテーションされた外部サービスを呼び出すテストは、テストの詳細で完全な分散型トレースを表示します。

Agent ベースのレポート

Datadog Agent を通じてテスト情報を報告する能力。

エージェントレスレポート

Datadog Agent を使用せずにテスト情報を報告する能力。

テストスイートレベルの可視性

セッション、モジュール、スイート、テストを含むテストプロセス全体の可視性。

手動 API

Datadog の自動インスツルメンテーションでサポートされていないテストフレームワーク用の CI Visibility イベントをプログラム的に作成する能力。

テストごとのコード所有者

CODEOWNERS ファイルに基づくテストファイルの所有者の自動検出。

(部分的)
ソースコードの開始/終了

テストの開始行と終了行の自動レポート。

(開始のみ) (開始のみ) (開始のみ)
CI と git 情報

CI プロバイダー、git コミット SHA、パイプライン URL などの git や CI 環境のメタデータの自動収集。

Git メタデータのアップロード

Intelligent Test Runner で使用される git ツリー情報の自動アップロード。

Intelligent Test Runner

コードカバレッジと git メタデータに基づいてインテリジェントにテストをスキップする Intelligent Test Runner を有効にする能力。

コードカバレッジサポート

全体のコードカバレッジのメトリクスを報告する能力。

(手動)
ベンチマークテストサポート

ベンチマークテストのパフォーマンス統計の自動検出。

パラメタライズドテスト

パラメタライズドテストの自動検出。

デフォルト構成

テストは、与えられた条件のセットに対するコードの振る舞いを評価します。これらの条件の中には、OS やランタイムなど、テストが実行される環境に関連するものもあります。そのため、開発者は通常、異なる条件下でテストを実行するように構成し、 すべての条件下で期待通りの挙動が得られるかどうかを検証します。この特定の条件のセットを構成と呼びます。

Test Visibility では、複数の構成を持つテストは、各構成ごとに別々のテストとして扱われます。いくつかの構成のうち一つが失敗し、他が成功した場合、その特定のテストと構成の組み合わせのみが失敗とマークされます。

例えば、1 つのコミットをテストする際に、3 つの異なる Python バージョンに対して実行する Python テストがあると仮定します。そのうちのひとつのバージョンのテストが失敗すると、その特定のテストは失敗とマークされ、他のバージョンは合格とマークされます。同じコミットに対してテストを再試行し、3 つすべてのバージョンの Python のテストがパスした場合、以前失敗したバージョンのテストは合格と不安定の両方としてマークされ、他の 2 つのバージョンは合格のままで不安定が検出されません。

テスト構成属性

Test Visibility でテストを実行する際、ライブラリはテスト実行環境に関する情報を検出し、それをテストタグとして報告します。例えば、WindowsLinux などの OS 名や、arm64x86_64 などのプラットフォームのアーキテクチャが、各テストのタグとして追加されます。これらの値は、特定の構成でテストが失敗または不安定であるが他の構成ではない場合、コミットやブランチの概要ページで表示されます。

以下のタグは、テスト構成を特定するために自動的に収集され、特定のプラットフォームにのみ適用されるものもあります。

タグ名説明
os.platformテストが実行されるオペレーティングシステムの名前。
os.familyテストが実行されるオペレーティングシステムの系列。
os.versionテストが実行されるオペレーティングシステムのバージョン。
os.architectureテストが実行されるオペレーティングシステムのアーキテクチャ。
runtime.nameテスト用ランタイムシステムの名前。
runtime.versionランタイムシステムのバージョン。
runtime.vendorテストを実行するランタイムプラットフォームを構築したベンダー。
runtime.architectureテスト用ランタイムシステムのアーキテクチャ。
device.modelテストを実行しているデバイスのモデル。
device.nameデバイスの名前。
ui.appearanceユーザーインターフェイスのスタイル。
ui.orientationUI が実行されるオリエンテーション。
ui.localizationアプリケーションの言語。

カスタム構成

環境変数やテスト実行時の引数など、開発者が使用するアプローチに依存する場合があるため、直接識別して自動的に報告することができない構成もあります。そのような場合は、Test Visibility が適切に識別できるように、ライブラリに構成の詳細を提供する必要があります。

これらのタグを test.configuration プレフィックスを使用して、DD_TAGS 環境変数の一部として定義します。

例えば、以下のテスト構成タグはディスクの応答時間が遅く、利用可能なメモリが少ないテスト構成を識別します。

DD_TAGS=test.configuration.disk:slow,test.configuration.memory:low

自動的に収集されたタグに加えて、test.configuration というプレフィックスを持つすべてのタグが構成タグとして使用されます。

注: test.configuration.cpu.memory のようにネストされた test.configuration タグはサポートされていません。

これらの構成タグを使ってフィルターをかけるには、これらのタグ用のファセットを作成する必要があります

CI テストデータの使用

When CI Visibility is enabled, the following data is collected from your project:

  • Test names and durations.
  • Predefined environment variables set by CI providers.
  • Git commit history including the hash, message, author information, and files changed (without file contents).
  • Information from the CODEOWNERS file.

ヘルプ


Intelligent Test Runner が .NET、Java、JavaScript、Swift で有効になっている場合、各テストの対象となるファイル名と行番号を含むテストごとのコードカバレッジ情報がプロジェクトから収集されます。

ダッシュボードまたはノートブックを作成する際、検索クエリでテスト実行データを使用すると、視覚化ウィジェットのオプションが更新されます。

テストデータに対するアラート

Test Runs ページで、失敗したテストや不安定なテスト、CI テストのパフォーマンスを評価する場合、Create Monitor をクリックして、CI Test モニターを作成します。

その他の参考資料