- はじめに
- エージェント
- インテグレーション
- Watchdog
- イベント
- ダッシュボード
- モバイルアプリケーション
- インフラストラクチャー
- サーバーレス
- メトリクス
- ノートブック
- アラート設定
- APM & Continuous Profiler
- CI Visibility
- RUM & セッションリプレイ
- データベース モニタリング
- ログ管理
- セキュリティプラットフォーム
- Synthetic モニタリング
- ネットワークモニタリング
- 開発者
- API
- アカウントの管理
- データセキュリティ
- ヘルプ
JUnit テストレポートファイルは、テスト名とスイート名、合格/不合格ステータス、期間、場合によってはエラーログなどのテスト実行情報を含む XML ファイルです。JUnit テストフレームワークによって導入されましたが、他の多くの一般的なフレームワークは、この形式を使用して結果を出力できます。
最も包括的なテスト結果を提供するため推奨されるオプションである Datadog トレーサーを使用してネイティブにテストをインスツルメントする代わりに、JUnit XML テストレポートをアップロードすることもできます。
JUnit XML レポートからインポートされたテスト結果は、トレーサーによってレポートされたテストデータと一緒に表示されます。ただし、この方法を使用する場合は、インテグレーションテストや構造化スタックトレースに分散型トレースがないなど、いくつかの制限があります。このため、この方法は、使用されている言語またはテストフレームワークのネイティブサポートがない場合にのみ使用してください。
npm
を使用して datadog-ci
CLI をグローバルにインストールします。
npm install -g @datadog/datadog-ci
CI で NodeJS をインストールすることに問題がある場合は、スタンドアロンバイナリが Datadog CI リリースで提供されています。linux-x64、darwin-x64 (MacOS)、win-x64 (Windows) のみがサポートされています。インストールするには、ターミナルで以下を実行します。
curl -L --fail "https://github.com/DataDog/datadog-ci/releases/latest/download/datadog-ci_linux-x64" --output "/usr/local/bin/datadog-ci" && chmod +x /usr/local/bin/datadog-ci
次に、datadog-ci
と任意のコマンドを実行します:
datadog-ci version
curl -L --fail "https://github.com/DataDog/datadog-ci/releases/latest/download/datadog-ci_darwin-x64" --output "/usr/local/bin/datadog-ci" && chmod +x /usr/local/bin/datadog-ci
次に、datadog-ci
と任意のコマンドを実行します:
datadog-ci version
Invoke-WebRequest -Uri "https://github.com/DataDog/datadog-ci/releases/latest/download/datadog-ci_win-x64.exe" -OutFile "datadog-ci.exe"
次に、Start-Process -FilePath "datadog-ci.exe"
と任意のコマンドを実行します:
Start-Process -FilePath "./datadog-ci.exe" -ArgumentList version
JUnit XML テストレポートを Datadog にアップロードするには、次のコマンドを実行し、--service
パラメーターを使用してテストされたサービスまたはライブラリの名前と、XML レポートファイルまたはそれらを含むディレクトリへの 1 つ以上のファイルパスを指定します。
datadog-ci junit upload --service <service_name> <path> [<path> ...]
DATADOG_API_KEY
環境変数に有効な Datadog API キーを指定し、DD_ENV
環境変数にテストが実行された環境を指定します (たとえば、開発者ワークステーションから結果をアップロードする場合は local
、CI プロバイダーから結果をアップロードする場合は ci
)。例:
DD_ENV=ci DATADOG_API_KEY=<api_key> DATADOG_SITE= datadog-ci junit upload \
--service my-api-service \
unit-tests/junit-reports e2e-tests/single-report.xml
注: 250 MiB より大きいレポートは欠落したテストかログに終って完全に処理されないかもしれません。最高の体験を得るために、レポートは 250 MiB 以下であることを確認してください。
これは、datadog-ci junit upload
コマンドを使用するときに使用できるオプションの完全なリストです。
--service
(必須)DD_SERVICE
my-api-service
--env
DD_ENV
ci
--tags
key:value
形式のキーと値のペア (--tags
パラメーターは複数回指定できます)。DD_TAGS
を使用してタグを指定する場合は、カンマを使用してタグを区切ります (例: team:backend,priority:high
)。DD_TAGS
team:backend
--tags
と DD_TAGS
環境変数を使用して指定されたタグがマージされます。--tags
と DD_TAGS
の両方に同じキーが表示される場合、環境変数 DD_TAGS
の値が優先されます。--logs
(ベータ版)<system-out>
、<system-err>
、<failure>
内のコンテンツはログとして収集されます。<testcase>
内の要素からのログは自動的にテストに接続されます。DD_CIVISIBILITY_LOGS_ENABLED
false
--max-concurrency
20
--dry-run
false
.xml
ファイルを検索します。次の環境変数がサポートされています。
DATADOG_API_KEY
(必須)さらに、選択したサイトを使用するように Datadog サイトを構成します ():
DATADOG_SITE
(必須)datadoghq.com
Datadog は、テスト結果を可視化し、リポジトリやコミットごとにグループ化するために Git 情報を使用します。Git のメタデータは、Datadog の CI CLI が CI プロバイダーの環境変数やプロジェクトパスのローカルな .git
フォルダ (あれば) から収集します。このディレクトリを読み込むには、git
バイナリが必要です。
サポートされていない CI プロバイダーでテストを実行する場合や、.git
フォルダがない場合は、環境変数を使って Git の情報を手動で設定することができます。これらの環境変数は、自動検出された情報よりも優先されます。Git の情報を提供するために、以下の環境変数を設定します。
DD_GIT_REPOSITORY_URL
git@github.com:MyCompany/MyApp.git
、https://github.com/MyCompany/MyApp.git
DD_GIT_BRANCH
develop
DD_GIT_TAG
1.0.1
DD_GIT_COMMIT_SHA
a18ebf361cc831f5535e58ec4fae04ffd98d8152
DD_GIT_COMMIT_MESSAGE
Set release number
DD_GIT_COMMIT_AUTHOR_NAME
John Smith
DD_GIT_COMMIT_AUTHOR_EMAIL
john@example.com
DD_GIT_COMMIT_AUTHOR_DATE
2021-03-12T16:00:28Z
DD_GIT_COMMIT_COMMITTER_NAME
Jane Smith
DD_GIT_COMMIT_COMMITTER_EMAIL
jane@example.com
DD_GIT_COMMIT_COMMITTER_DATE
2021-03-12T16:00:28Z
Datadog では、特別な専用タグを使用して、OS、ランタイム、デバイス情報など、テストが実行される環境の構成を特定します (該当する場合)。同じコミットに対する同じテストが複数の構成で実行される場合 (例えば、Windows 上と Linux 上)、タグは障害やフレーク性の検出におけるテストの区別に使用されます。
これらの特別なタグは、 datadog-ci junit upload
を呼び出すときに --tags
パラメーターを使用するか、環境変数 DD_TAGS
を設定することで指定することができます。
これらのタグはすべて任意であり、指定したものだけが環境構成の区別に使用されます。
test.bundle
ApplicationUITests
、ModelTests
os.platform
windows
、linux
、darwin
os.version
10.15.4
、14.3.2
、95
os.architecture
x64
、x86
、arm64
runtime.name
.NET
、.NET Core
、OpenJDK Runtime Environment
、Java(TM) SE Runtime Environment
、CPython
runtime.version
5.0.0
, 3.1.7
runtime.vendor
AdoptOpenJDK
、Oracle Corporation
runtime.architecture
x64
、x86
、arm64
モバイルアプリの場合 (Swift、Android):
device.model
iPhone11,4
、AppleTV5,3
device.name
iPhone 12 Pro Simulator
、iPhone 13 (QA team)
<property>
要素によるメタデータの提供アップロードされた XML レポートに含まれるすべてのテストにカスタムタグをグローバルに適用する --tags
CLI パラメーターと DD_TAGS
環境変数に加えて、 <testsuite>
や <testcase>
の要素の中に <property name="dd_tags[key]" value="value">
の要素を含めることによって、特定のテストに追加のタグを提供することができます。これらのタグを <testcase>
要素に追加すると、そのタグはテストスパンに保存されます。<testsuite>
要素にタグを追加すると、そのスイートのすべてのテストスパンにタグが格納されます。
この処理を行うには、 <property>
要素の name
属性が dd_tags[key]
という形式である必要があります。ここで key
は追加されるカスタムタグの名前です。その他のプロパティは無視されます。
例: <testcase>
要素にタグを追加する
<?xml version="1.0" encoding="UTF-8"?>
<testsuites>
<testsuite tests="1" failures="0" time="0.030000" name="SomeTestSuiteClass">
<testcase classname="SomeTestSuiteClass" name="test_something" time="0.010000">
<properties>
<property name="dd_tags[custom_tag]" value="some value"></property>
<property name="dd_tags[runtime.name]" value="CPython"></property>
</properties>
</testcase>
</testsuite>
</testsuites>
例: <testsuite>
要素にタグを追加する
<?xml version="1.0" encoding="UTF-8"?>
<testsuites>
<testsuite tests="1" failures="0" time="0.030000" name="SomeTestSuiteClass">
<properties>
<property name="dd_tags[custom_tag]" value="some value"></property>
<property name="dd_tags[runtime.name]" value="CPython"></property>
</properties>
<testcase classname="SomeTestSuiteClass" name="test_something" time="0.010000"></testcase>
</testsuite>
</testsuites>
お役に立つドキュメント、リンクや記事: