私のニーズに合わせて、OpenCover と NUnit にいくつかの変更を加えています。
簡単に言うと、Nunit でシャドウ コピーが有効になっている場合でも、カバレッジ情報を取得したいと考えています。ただし、pdb ファイルが存在しない場合、OpenCover はアセンブリを追跡できません。NUnit でシャドウ コピーが有効になっている場合、テスト対象のアセンブリはシャドウ ディレクトリにコピーされ、OpenCover は対応する pdf ファイルを見つけることができません。
最初は、.Net ランタイムが pdb ファイルをシャドウ ディレクトリにコピーしていないだけだと思っていました。しかし、この問題をさらに調査したところ、ランタイムは pdb ファイルをコピーしますが、アセンブリがコピーされるのとは同時にではないことがわかりました。
私の理解では、ランタイムは最初にアセンブリをシャドウ ディレクトリにコピーします。そして、それらのアセンブリが読み込まれ、Opencover に通知されます。OpenCover は pdb ファイルがないことを検出したため、これらのアセンブリは無視されます。しばらくして、pdb ファイルがコピーされますが、OpenCover はこの事実に気付かなかったため、これらのアセンブリを追跡できませんでした。
私の質問は、.Net ランタイムが pdb ファイルをシャドウ ディレクトリにコピーする正確な時刻はいつですか? また、これらのシャドウ コピーされたアセンブリを追跡できるように、OpenCover を変更することは可能ですか?