トラブルシューティング コード カバレッジ
Visual Studio のコード カバレッジ分析ツールは、ネイティブ コードとマネージ アセンブリのデータを収集します (.dll または .exe ファイル)。ただし、コード カバレッジは、ウィンドウの 「生成される空の結果と同様のエラーです: です。」その理由発生する可能性が複数の原因があります。このトピックでは、これらの問題を解決するために用意されています。
必要な結果を確認
[テスト] メニューの [コード カバレッジの分析] のコマンドを選択すると、でビルドと正常に実行し、コード カバレッジの結果] ウィンドウの一覧が表示されます。詳細を表示するには、項目を配置する必要がある場合があります。
詳細については、「コード カバレッジを使用した、テストされるプロジェクトのコード割合の確認」を参照してください。
結果を確認することな原因
テストは実行されません。
分析
、出力ウィンドウをチェックします。[出力元の表示] のドロップダウン リストで、**[テスト]**を選択します。記録された警告またはエラーが存在するかどうかを確認します。説明
コード カバレッジ分析は、テストの実行中に発生します。これはメモリに読み込まれる場合にのみ実行アセンブリが含まれます。テストのいずれも実装することを報告するコード カバレッジの何もありません。解決策
テストのエクスプローラーで、検証するに [すべて実行] を正常に実行することを選択します。**[コード カバレッジの分析]**を使用する前にエラーを修正。
シンボル (.pdb) ファイルを使用できません。
分析
コンパイルの対象となるフォルダー (通常 bin\debug) を開いてことをアセンブリごとに確認し、.dll または .exe ファイルと同じディレクトリに .pdb ファイルがあります。説明
コード カバレッジ エンジンは、どのアセンブリがテストの実行中にアクセスできる、関連付けられた .pdb ファイルが必要です。特定のアセンブリの .pdb ファイルがない場合、解析されません。.pdb ファイルは、.dll ファイルまたは .exe ファイルと同じビルドから生成する必要があります。
解決策
ビルドの設定が .pdb ファイルを生成することを確認します。プロジェクトのビルド時に .pdb ファイルが更新されていない場合は、プロジェクトのプロパティを開き、[ビルド] のページを選択し、[詳細設定] を選択し、を **[デバッグ情報]**を確認します。.pdb および .dll ファイルまたは .exe ファイルが別の場所にある場合は、同じディレクトリに .pdb ファイルをコピーします。別の場所で .pdb ファイルを検索するコード カバレッジ エンジンを構成することもできます。詳細については、「コード カバレッジ分析のカスタマイズ」を参照してください。
インストルメント化されたか、最適化されたバイナリを使用する
分析
バイナリが最適化のプロファイル] などの高度な最適化のフォームを経たを確認するか、vsinstr.exe または vsperfmon.exe などのプロファイリング ツールによってかどうかをインストルメントされています。説明
アセンブリが別のプロファイリング ツールによってインストルメントするか、または最適化された場合、アセンブリは、コード カバレッジ分析から除外されます。コード カバレッジ分析は、このようなアセンブリで実行できません。
解決策
最適化を切り替えて、新しいビルドを使用します。
コード (.NET) またはネイティブ コード (C++) 管理されません
分析
マネージまたは C++ コードのあるテストを実行することを確認します。説明
Visual Studio のコード カバレッジ分析は、マネージ コードとネイティブ コード (C++) でのみ使用できます。サードパーティ製ツールを使用すると、コードの一部またはすべてを別のプラットフォームで実行される場合があります。解決策
使用できる None。
アセンブリは、NGen でインストール
分析
アセンブリがネイティブ イメージ キャッシュから読み込まれていないことを確認します。説明
パフォーマンス上の理由から、ネイティブ イメージのアセンブリは、解析されません。詳細については、「Ngen.exe (ネイティブ イメージ ジェネレーター)」を参照してください。解決策
アセンブリの MSIL バージョンを使用します。NGen で操作しないでください。
無効な構文のカスタム .runsettings ファイル
分析
カスタム .runsettings ファイルを使用する場合、構文エラーが含まれる場合があります。これは、実行されるコード カバレッジは生じません。コード カバレッジのウィンドウは、テストの実行の最後に表示したり、古い結果を示しています。
説明
コード カバレッジのオプションを構成するためのカスタム .runsettings ファイルで単体テストを実行できます。オプションは、ファイルを含めるか、除外するかを指定できます。詳細については、「コード カバレッジ分析のカスタマイズ」を参照してください。解決策
違反の 2 とおりの型があります:
XML エラー
Visual Studio XML エディターで .runsettings ファイルを開きます。エラーの問題を検索します。
正規表現のエラー
ファイルの各文字列が正規表現です。エラーのすべてを確認し、それらに検索します:
一致しないかっこ (...) またはエスケープされないかっこの \ (…\).検索文字列のかっこと一致する場合は、エスケープする必要があります。たとえば、関数の使用に一致する場合: .*MyFunction\(double\)
式の先頭でアスタリスクの正符号。文字列と照合する場合は、アスタリスクに続くポイントの使用: .*
不適切なカスタム .runsettings ファイルの除外
分析
カスタム .runsettings ファイルを使用する場合は、アセンブリが含まれていることを確認します。説明
コード カバレッジのオプションを構成するためのカスタム .runsettings ファイルで単体テストを実行できます。オプションは、ファイルを含めるか、除外するかを指定できます。詳細については、「コード カバレッジ分析のカスタマイズ」を参照してください。解決策
Include のすべてのノードを .runsettings ファイルから削除し、次に Exclude のノードをすべて削除します。この問題を解決したら、段階で返します。DataCollectors のノードがコード カバレッジを指定してください。コード カバレッジ分析のカスタマイズの例と比較します。
コードは覆われないように常に示します。
ネイティブ DLL の初期化コードは、インストルメンテーションの前に実行されます
分析
静的にリンクされたネイティブ コードでは、呼び出す初期化関数の一部と DllMain コードは、覆われないようにコードが実行された場合でも、示します。説明
コード カバレッジのツールは、アセンブリにインストルメンテーションを挿入して、アプリケーションが実行を開始する直前に動作します。読み込まれるアセンブリには、アプリケーションの前により、DllMain の初期化コードが実行される前にアセンブリの読み込み直後に実行されます。コードは保護されないようになります。通常、これは静的に読み込まれたアセンブリに適用されます。
解決策
なし。