Microsoft.Extensions の統合

これらの拡張機能は、Microsoft.Testing.Platform (MTP) と、アプリケーションですでに使用しているMicrosoft.Extensions.* ライブラリを橋渡しすることで、プラットフォーム コンポーネントと拡張機能コンポーネントが、コードの他の部分と同じインフラストラクチャを通じて機能するようにします。 各セクションで説明されているように、各拡張機能には追加の NuGet パッケージが必要です。

ヒント

Microsoft.Testing.Platform.MSBuild (MSTest、NUnit、xUnit ランナーによって推移的に含まれる) を使用する場合、これらの拡張機能は NuGet パッケージをインストールするときに自動的に登録されます。コードの変更は必要ありません。 この記事で指定されている手動登録は、 <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>設定して自動生成されたエントリ ポイントを無効にした場合にのみ必要です。

ログブリッジ

ロギング ブリッジは、Microsoft.Testing.Platform の診断ログを ILogger に転送するため、プラットフォームと拡張機能のログは、アプリケーションが既に使用しているのと同じ Microsoft.Extensions.Logging パイプラインを流れます。 カスタム MTP ロガー プロバイダーを記述しなくても、既存のログ スタック (コンソール、デバッグ、セリログ、Application Insights、OpenTelemetry、またはカスタム ILoggerProvider ) を再利用できます。 この拡張機能には Microsoft.Testing.Extensions.Logging NuGet パッケージが必要です。

Note

バージョン 2.3.0 以降の MTP で使用できます。 この拡張機能は試験段階であり、オプションと出力形式は将来のバージョンで変更される可能性があります。

ブリッジは、プラットフォームの診断ログが有効になっている場合にのみ、各メッセージを転送します。 プラットフォームの有効なログ レベルが None されている場合 (既定では、 --diagnosticを渡さない限り)、構成デリゲートは呼び出されず、ロガー ファクトリは作成されません。 ILoggingBuilderで設定したカテゴリごとのフィルターは、プラットフォームの有効な診断レベルを絞り込むことができますが、拡張することはできません。

手動登録

var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddMicrosoftExtensionsLogging(logging => logging.AddConsole());