.NET テスト

選択したサイト () では、現時点では CI Visibility は使用できません。

互換性

対応する .NET バージョン:

  • .NET Framework 4.6.1 以上
  • .NET Core 2.1、3.1、.NET 5、および .NET 6

対応するテストフレームワーク:

  • xUnit 2.2 以上
  • NUnit 3.0 以上
  • MsTestV2 14 以上

前提条件

テストデータを収集するために Datadog Agent をインストールします

Agentless モードはベータ版です。この機能を試すには、このページの指示に従ってください。

.NET トレーサー CLI のインストール

以下のいずれかの方法で dd-trace コマンドをインストールまたは更新してください。

テストのインスツルメンテーション

テストスイートをインスツルメントするには、テストコマンドの前に dd-trace ci run を付け、テスト中のサービスまたはライブラリの名前を --dd-service パラメーターとして指定し、テストが実行されている環境 (たとえば、 開発者ワークステーションでテストを実行する場合は local、CI プロバイダーでテストを実行する場合は ci) を --dd-env パラメーターとして使用します。例:

dotnet test の使用によって

dd-trace ci run --dd-service=my-dotnet-app --dd-env=ci -- dotnet test

VSTest.Console.exe の使用によって

dd-trace ci run --dd-service=my-dotnet-app --dd-env=ci -- VSTest.Console.exe {test_assembly}.dll

すべてのテストは自動的にインスツルメントされます。

コンフィギュレーション設定

コマンドライン引数または環境変数を使用して、CLI のデフォルトコンフィギュレーションを変更できます。コンフィギュレーション設定の完全なリストについては、以下を実行してください。

dd-trace ci run --help

次のリストは、主要なコンフィギュレーション設定のデフォルト値を示しています。

--dd-service
テスト中のサービスまたはライブラリの名前。
環境変数: DD_SERVICE
デフォルト: リポジトリ名
: my-dotnet-app
--dd-env
テストが実行されている環境の名前。
環境変数: DD_ENV
デフォルト: none
: localci
--agent-url
http://hostname:port の形式のトレース収集用の Datadog Agent URL。
環境変数: DD_TRACE_AGENT_URL
デフォルト: http://localhost:8126

他のすべての Datadog トレーサーコンフィギュレーションオプションも使用できます。

Git のメタデータを収集する

Datadog は、テスト結果を可視化し、リポジトリ、ブランチ、コミットごとにグループ化するために Git の情報を使用します。Git のメタデータは、CI プロバイダーの環境変数や、プロジェクトパス内のローカルな .git フォルダがあれば、そこからテストインスツルメンテーションによって自動的に収集されます。

サポートされていない CI プロバイダーでテストを実行する場合や、.git フォルダがない場合は、環境変数を使って Git の情報を手動で設定することができます。これらの環境変数は、自動検出された情報よりも優先されます。Git の情報を提供するために、以下の環境変数を設定します。

DD_GIT_REPOSITORY_URL
コードが格納されているリポジトリの URL。HTTP と SSH の両方の URL に対応しています。
: git@github.com:MyCompany/MyApp.githttps://github.com/MyCompany/MyApp.git
DD_GIT_BRANCH
テスト中の Git ブランチ。タグ情報を指定する場合は、空のままにしておきます。
: develop
DD_GIT_TAG
テストされる Git タグ (該当する場合)。ブランチ情報を指定する場合は、空のままにしておきます。
: 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
ISO 8601 形式のコミット作成者の日付。
: 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
ISO 8601 形式のコミットのコミッターの日付。
: 2021-03-12T16:00:28Z

カスタムインスツルメンテーション

注: カスタムインスツルメンテーションの設定は、dd-trace のバージョンに依存します。カスタムインスツルメンテーションを使用するには、dd-traceDatadog.Trace の NuGet パッケージのバージョンを同期させておく必要があります。

.NET アプリケーションでカスタムインスツルメンテーションを使用するには

  1. ツールのバージョンを取得するには、dd-trace --version を実行します。
  2. 同じバージョンの Datadog.Trace NuGet パッケージをアプリケーションに追加します。
  3. アプリケーションコードで、Datadog.Trace.Tracer.Instance プロパティを介してグローバルトレーサーにアクセスし、新しいスパンを作成します。

カスタムインスツルメンテーションのスパンやタグの追加方法については、.NET カスタムインスツルメンテーションのドキュメントを参照してください。

Agentless (ベータ版)

Agent を使用せずにテストスイートをインスツルメントするには、以下の環境変数を構成します。

DD_CIVISIBILITY_AGENTLESS_ENABLED (必須)
Agentless モードを有効または無効にします。
デフォルト: false
DD_API_KEY (必須)
テスト結果のアップロードに使用される Datadog API キー
デフォルト: (empty)

そして、テストコマンドの前に dd-trace ci run を付けます。--dd-service パラメーターを使用して、サービスやライブラリの名前を指定します。--dd-env パラメーターには、テストを実行する環境を指定します (開発者のワークステーションでテストを実行する場合は local 、CI プロバイダでテストを実行する場合は ci など)。

dd-trace ci run --dd-service=my-dotnet-app --dd-env=ci -- dotnet test

また、 --api-key パラメーターを使用して、Datadog API キーを提供することも可能です。例:

dd-trace ci run --api-key <API KEY> --dd-service=my-dotnet-app --dd-env=ci -- dotnet test

--api-key を設定すると、自動的に Agentless モードが有効になります。

さらに、どの Datadog サイトにデータを送信するかを構成します。あなたの Datadog サイトは です。

DD_SITE (必須)
結果をアップロードする Datadog サイト
デフォルト: datadoghq.com
選択したサイト:

その他の参考資料