Iai*_*way 7 c# mstest code-coverage c#-6.0 visual-studio-2015
我刚刚将一堆项目升级到VS2015/C#6.
现在,MSTest的代码覆盖率分析报告单元测试未涵盖某些自动属性.在Visual Studio 2013中并非如此,我怀疑它可能与C#6中的新autoproperty功能有关.
处理所产生的所有误报都会使代码覆盖率工具的目的失败,因为它几乎不可能识别缺乏测试覆盖率的实际代码.我们不想为所有DTO编写单元测试,而且我真的不需要通过项目注释每个自动属性ExcludeFromCodeCoverage.
我在https://github.com/iaingalloway/VisualStudioCodeCoverageIssue创建了一个有效的MCVE
VisualStudio2013.sln在Visual Studio 2013 Premium或Ultimate中打开.VisualStudio2015.sln在Visual Studio 2015 Enterprise中打开.是否可以在Visual Studio 2015中配置内置代码覆盖率工具以忽略Visual Studio 2013之类的自动属性?
作为解决方法,您可以将以下内容添加到.runsettings文件中: -
<RunSettings>
<DataCollectionRunSettings>
<DataCollector ...>
<Configuration>
<CodeCoverage>
<Functions>
<Exclude>
<Function>.*get_.*</Function>
<Function>.*set_.*</Function>
</Exclude>
...
Run Code Online (Sandbox Code Playgroud)
这不是一个很好的解决方法,但只要你没有使用名称中带有"get_"或"set_"的任何函数,它就可以获得你需要的行为.