如何强制将未经测试的程序集包含在代码覆盖范围内?

时间:2016-02-17 13:09:27

标签: visual-studio code-coverage runsettings

我正在努力使Visual Studio的代码覆盖率工具变得有用。我正在研究遗留项目,为了重构所有这些代码,我添加了单元测试。问题是,当我测量代码覆盖率时,我只看到三个已经测试过方法的dll程序集。

有些人可能会说“如果不存在,就意味着它没有经过测试”,基本上你是对的,但我希望这个机制可以帮助我避免犯错误。我想知道未经测试的类和方法在那里,所以我知道覆盖/未覆盖的比例。

这是我的自定义.runsettings文件的包含/排除部分。

<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(存储测试),所以我将它们排除在外。那部分确实奏效了。这个link帮助了我。但是当我添加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。

实际上我可以做我想做的事吗?如果是这样,如何实现呢?

0 个答案:

没有答案
相关问题