Datadog における Test Visibility
選択したサイト ( ) では現在 CI Visibility は利用できません。
概要 Test Visibility は、テストからの重要なメトリクスと結果を表示することで、CI 状態のテストファーストビューを提供します。パイプラインを保守しているのではなく、関連するコードを保守しているため、最も気になるパフォーマンス問題やテストの失敗を調査するのに役立ちます。
送信 - Agent チェック Datadog で Test Visibility をセットアップするための言語を選択します。
テストに加えて、Test Visibility はプロジェクトのテストフェーズ全体を視覚化します (Ruby を除く)。
サポートされる機能 ダッシュボード モニタリング Javascript 設定 エクスプローラー Exadata JUnit 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 でテストを実行する際、ライブラリはテスト実行環境に関する情報を検出し、それをテストタグとして報告します。例えば、Windows
や Linux
などの OS 名や、arm64
や x86_64
などのプラットフォームのアーキテクチャが、各テストのタグとして追加されます。これらの値は、特定の構成でテストが失敗または不安定であるが他の構成ではない場合、コミットやブランチの概要ページで表示されます。
以下のタグは、テスト構成を特定するために自動的に収集され、特定のプラットフォームにのみ適用されるものもあります。
タグ名 説明 os.platform
テストが実行されるオペレーティングシステムの名前。 os.family
テストが実行されるオペレーティングシステムの系列。 os.version
テストが実行されるオペレーティングシステムのバージョン。 os.architecture
テストが実行されるオペレーティングシステムのアーキテクチャ。 runtime.name
テスト用ランタイムシステムの名前。 runtime.version
ランタイムシステムのバージョン。 runtime.vendor
テストを実行するランタイムプラットフォームを構築したベンダー。 runtime.architecture
テスト用ランタイムシステムのアーキテクチャ。 device.model
テストを実行しているデバイスのモデル。 device.name
デバイスの名前。 ui.appearance
ユーザーインターフェイスのスタイル。 ui.orientation
UI が実行されるオリエンテーション。 ui.localization
アプリケーションの言語。
カスタム構成 環境変数やテスト実行時の引数など、開発者が使用するアプローチに依存する場合があるため、直接識別して自動的に報告することができない構成もあります。そのような場合は、Test Visibility が適切に識別できるように、ライブラリに構成の詳細を提供する必要があります。
これらのタグを test.configuration
プレフィックスを使用して、DD_TAGS
環境変数の一部として定義します。
例えば、以下のテスト構成タグはディスクの応答時間が遅く、利用可能なメモリが少ないテスト構成を識別します。
Copy
DD_TAGS = test.configuration.disk:slow,test.configuration.memory:low
自動的に収集されたタグに加えて、test.configuration
というプレフィックスを持つすべてのタグが構成タグとして使用されます。
注: test.configuration.cpu.memory
のようにネストされた test.configuration
タグはサポートされていません。
これらの構成タグを使ってフィルターをかけるには、これらのタグ用のファセットを作成する必要があります 。
CI テストデータの使用 When Test 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. ヘルプ Test Visibility との以下のインテグレーションについてご覧ください。
Intelligent Test Runner が .NET、Java、JavaScript、Swift で有効になっている場合、各テストの対象となるファイル名と行番号を含むテストごとのコードカバレッジ情報がプロジェクトから収集されます。
ダッシュボード またはノートブック を作成する際、検索クエリでテスト実行データを使用すると、視覚化ウィジェットのオプションが更新されます。
テストデータに対するアラート Test Runs ページ で、失敗したテストや不安定なテスト、CI テストのパフォーマンスを評価する場合、Create Monitor をクリックして、CI Test モニター を作成します。
その他の参考資料