VS 2012 でコード カバレッジを実行しようとしているときに、突然次の例外が発生し始めました。
例外がスローされました: コード カバレッジ分析エンジンが例外をスローしました: カバレッジ ファイル "........coverage" が無効または破損しています
解決策/回避策は役に立ちます。
VS 2012 でコード カバレッジを実行しようとしているときに、突然次の例外が発生し始めました。
例外がスローされました: コード カバレッジ分析エンジンが例外をスローしました: カバレッジ ファイル "........coverage" が無効または破損しています
解決策/回避策は役に立ちます。
VS2010 でこのエラーを見たことがありますが、控えめに言ってもイライラします。このエラーは、正しく「インストルメント化」されていない 1 つ以上のアセンブリに関連している可能性があります。メモリから、テスト設定で「インプレースのインスツルメント アセンブリ」の選択を解除することで解決できることを思い出します。
"instrumenting in place" に関しては、コード カバレッジが有効になっている場合、Visual Studio は TestRun の前にアセンブリの IL を書き直して、IL のどの部分が実行されたかを記録できるようにするために少し時間がかかります。"Instrumenting in place" は、".instr" 拡張子を持つアセンブリのバックアップを作成し、プロファイラーをオンにしてテストを実行し、テストの完了後にインストルメント化されたアセンブリを元のアセンブリに置き換えます。このエラーが表示されたとき、元のファイルを復元できなかった (ロックされている可能性がある) ように見え、ビルド出力フォルダーにいくつかの ".instr" アセンブリが残っていました。私の理論では、IDE はカバレッジ データを元のアセンブリに関連付けようとしますが、この不一致が原因で失敗します。
私の知る限り、カバレッジをローカルで表示するときにインプレース インストルメンテーションをオフにしても目に見える違いはありません。
VS 2012 Premium でこのエラーが発生しました。VS Update 1を適用して修正しましたが、それ以降は見られません。