Visual Studio テスト エクスプローラーに関する FAQ
動的なテストの検出
テスト エクスプローラーでは、動的に定義されたテスト (理論、カスタム アダプター、カスタム特性、#ifdef ステートメントなど) が検出されません。 これらのテストが検出されていることを確認するにはどうすればよいですか?
アセンブリ ベースの検出を実行するプロジェクトをビルドします。
リアルタイムテスト検出 は、ソースベースのテスト検出です。 理論、カスタム アダプター、カスタム特性、#ifdef
ステートメントなどを使用するテストは、実行時に定義されているため、検出できません。 これらのテストを正確に検出するには、ビルドが必要です。
Visual Studio 2017 バージョン 15.6 以降では、アセンブリ ベースの検出 (従来の探索者) はビルド後にのみ実行されます。 この設定は、リアルタイムのテスト検出で、編集中にできるだけ多くのテストを検出することを意味します。 アセンブリ ベースの検出では、ビルド後に動的に定義されたテストを表示できます。
リアルタイムのテスト検出により応答性が向上しますが、ビルド後に完全で正確な結果を得ることができます。
テスト エクスプローラーと (+) 記号
テスト エクスプローラーの一番上の行に表示されるプラス記号は何を意味しますか?
プラス記号 (+) は、アセンブリ ベースの検出の実行時にビルド後にさらに多くのテストが検出される可能性があることを示します。 このシンボルは、プロジェクトで動的に定義されたテストが検出された場合に表示されます。
リアルタイムのテスト検出
入力中にテスト エクスプローラーにテストが表示されるようになりました。プロジェクトをビルドする必要はありません。 何が変更されましたか?
この機能は リアルタイムテスト検出と呼ばれます。 Roslyn アナライザーを使用してテストを検索し、リアルタイムでテスト エクスプローラーを設定します。プロジェクトをビルドする必要はありません。 理論やカスタム特性などの動的に定義されたテストのテスト検出動作の詳細については、この記事の前半 動的テスト検出の を参照してください。
リアルタイム テスト検出の互換性
リアルタイムのテスト検出を使用できる言語とテスト フレームワークは何ですか?
リアルタイム テスト検出 は、Roslyn コンパイラを介して構築されているため、マネージド言語 (C# および Visual Basic) でのみ機能します。 現時点では、リアルタイム テスト検出は xUnit、NUnit、MSTest フレームワークでのみ機能します。
テスト エクスプローラーのログ
テスト エクスプローラーのログを有効にする方法
ツール>オプション>テスト に移動し、そこに ログ記録 セクションを見つけます。
UWP テスト発見
アプリを展開するまで UWP プロジェクトのテストが検出されないのはなぜですか?
ユニバーサル Windows プラットフォーム (UWP) テストは、アプリの展開時に別のランタイムを対象とします。 UWP プロジェクトのテストを正確に見つけるには、プロジェクトをビルドするだけでなく、プロジェクトを配置する必要があります。
テスト エクスプローラーの並べ替え
階層ビューでのテスト結果の並べ替えのしくみ
階層ビューでは、結果ではなく、テストがアルファベット順に並べ替えられます。 以前のグループ化設定では、結果によってテスト結果が並べ替えられた後、アルファベット順に並べ替えられました。 結果による並べ替えを有効にするには、テスト エクスプローラーで列ヘッダーを右クリックし、State 列を有効にしてから、State 列ヘッダーを選択して、その列に並べ替えを適用します。 この GitHub の問題 デザインに関するフィードバックを提供できます。
テスト エクスプローラーの階層ビュー
階層ビューには、親ノードのグループ化の横に、渡されたアイコン、失敗したアイコン、スキップされたアイコン、実行されないアイコンがあります。 これらのアイコンの意味
Project、Namespace、および Class グループの横にあるアイコンは、各グループ内のテストの状態を示します。 次の表を参照してください。
ファイル パスで検索
テスト エクスプローラーの検索ボックスにファイル パス フィルターが表示されなくなったのはなぜですか?
Visual Studio 2017 バージョン 15.7 では、テスト エクスプローラーの検索ボックスのファイル パス フィルターが削除されました。 この機能は使用率が低く、テスト エクスプローラーでは、そのままにすることで、テスト メソッドを迅速に取得できます。この変更によって開発フローが中断される場合は、Developer Communityに関するフィードバックを送信して、お知らせください。
文書化されていないインターフェイスの削除
一部のテスト関連 API は、Visual Studio 2019 に存在しなくなりました。 何が変更されましたか?
Visual Studio 2019 では、以前はパブリックとしてマークされていたが、公式に文書化されていない一部のテスト ウィンドウ API が削除されます。 これらは Visual Studio 2017 で非推奨としてマークされ、拡張機能の保守担当者に早期警告が表示されました。 私たちの知る範囲では、これらの API を検出し、それらに依存する拡張機能はほとんどありませんでした。 これには、IGroupByProvider
、IGroupByProvider<T>
、KeyComparer
、ISearchFilter
、ISearchFilterToken
、ISearchToken
、および SearchFilterTokenType
が含まれます。
この変更が拡張機能に影響する場合は、開発者コミュニティのにバグを提出して、お知らせください。
テスト アダプターの NuGet 参照
Visual Studio 2017 バージョン 15.8 でテストが検出されても実行されないのはなぜですか?
すべてのテスト プロジェクトは、.csproj ファイルに .NET テスト アダプター NuGet 参照を含める必要があります。 そうでない場合は、ビルド後にテスト アダプター拡張機能による検出が開始された場合、または選択したテストを実行しようとすると、次のテスト出力がプロジェクトに表示されます。
テスト プロジェクト {} は、.NET NuGet アダプターを参照しません。 このプロジェクトでは、テストの検出または実行が機能しない可能性があります。 ソリューション内の各 .NET テスト プロジェクトで NuGet テスト アダプターを参照することをお勧めします。
テスト アダプター拡張機能を使用する代わりに、プロジェクトでテスト アダプター NuGet パッケージを使用する必要があります。 この要件により、パフォーマンスが大幅に向上し、継続的インテグレーションの問題が少なくなります。 .NET テスト アダプター拡張機能の廃止の詳細については、リリース ノートを参照してください。
UWP TestContainer が見つかりません
Visual Studio 2017 バージョン 15.7 以降で UWP テストが実行されなくなったのはなぜですか?
最近の UWP テスト プロジェクトでは、テスト アプリを識別するためのパフォーマンスを向上できるビルド プロパティが指定されています。 Visual Studio バージョン 15.7 より前に初期化された UWP テスト プロジェクトがある場合は、Output>Testsに次のエラーが表示されることがあります。
System.AggregateException: 1 つ以上のエラーが発生しました。 ---> System.InvalidOperationException: 次の TestContainer が {} Microsoft.VisualStudio.TestWindow.Controller.TestContainerProvider <GetTestContainerAsync>d__61.MoveNext() で見つかりませんでした
このエラーを修正するには:
次のコードを使用して、テスト プロジェクトのビルド プロパティを更新します。
<UnitTestPlatformVersion Condition="'$(UnitTestPlatformVersion)' == ''">$(VisualStudioVersion)</UnitTestPlatformVersion>
次のコードを使用して、TestPlatform SDK のバージョンを更新します。
<SDKReference Include="TestPlatform.Universal, Version=$(UnitTestPlatformVersion)" />
プレビュー機能
Visual Studio 2019 でプレビュー機能を使用するにはどうすればよいですか?
Visual Studio 2019 では、Tools>Options>Environment>Preview Featuresのプレビュー機能にオプトインできます。
関連コンテンツ
- Microsoft.VisualStudio.TestTools.UnitTesting
- 既存のコード の単体テストを作成して実行する
- コードの単体テスト
- ライブ 単体テストの に関する FAQ