How can I force inclusion of untested assemblies to Code Coverage?

272 views Asked by At

I'm trying to make Visual Studio's Code Coverage tool useful. I'm working on a legacy project and in order to refactor all this code I add unit tests. The problem is, when I measure code coverage I only see three dll assemblies that have tested methods.

Some of you might say that "if it ain't there, it means it's not tested", and basically you are right, but I would like to have this mechanism help me avoid making mistakes. I want to know that the untested classes and methods are there so I know the ratio between covered/not covered.

This is the include/exclude section of my custom .runsettings file.

<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>

I don't know why, but code coverage actually lists also FluentAssertions, XUnit and My.Tests.dll (which is storing tests), so I excluded them. That part actually worked. This link helped me with it. But when I added Some.Library.OfMine.dll it doesn't show in code coverage results.

To help point to it I added this section:

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

And added a reference in the test project to Some.Library.OfMine.dll. I'm sure the dll and pdb are there after build finishes it's job.

But I still can't see Some.Library.OfMine.dll among covered/not covered libraries in code coverage results.

Is it actually possible to do what I'm trying to do? If so, how to achieve that?

0

There are 0 answers