8

Visual Studio のコード カバレッジ ツールを便利にしようとしています。私はレガシー プロジェクトに取り組んでおり、このすべてのコードをリファクタリングするために単体テストを追加します。問題は、コード カバレッジを測定すると、メソッドをテストした 3 つの dll アセンブリしか表示されないことです。

「それがないということは、テストされていないということです」と言う人もいるかもしれませんが、基本的には正しいのですが、このメカニズムが間違いを避けるのに役立つようにしたいと考えています。テストされていないクラスとメソッドがそこにあることを知りたいので、カバーされている/カバーされていない比率を知っています。

これは、カスタム .runsettings ファイルの include/exclude セクションです。

<ModulePaths>
    <Include>
        <ModulePath>.*Some\.Library\.OfMine\.dll$</ModulePath>
        <ModulePath>.*\.dll$</ModulePath>
    </Include>
    <Exclude>
        <ModulePath>.*my\.tests\.dll$</ModulePath>
        <ModulePath>.*xunit\.core\.dll$</ModulePath>
        <ModulePath>.*fluentassertions\.dll$</ModulePath>
        <ModulePath>.*fluentassertions\.core\.dll$</ModulePath>
    </Exclude>
</ModulePaths>

理由はわかりませんが、コード カバレッジには実際には FluentAssertions、XUnit、および My.Tests.dll (テストを格納している) もリストされているため、それらを除外しました。その部分は実際に機能しました。このリンクは私を助けてくれました。しかし、Some.Library.OfMine.dll を追加すると、コード カバレッジの結果に表示されません。

それを指摘するのを助けるために、私はこのセクションを追加しました:

<SymbolSearchPaths>              
    <Path>E:\The\Absolute\Path\To\The\Test\Project\bin\Debug</Path>
</SymbolSearchPaths>

また、テスト プロジェクトに Some.Library.OfMine.dll への参照を追加しました。ビルドが仕事を終えた後、dllとpdbがそこにあると確信しています。

しかし、コード カバレッジの結果でカバーされているライブラリとカバーされていないライブラリの中に Some.Library.OfMine.dll が表示されません。

私がやろうとしていることを実際に行うことは可能ですか?もしそうなら、それを達成する方法は?

4

0 に答える 0