这个问题是Exclude auto properties from Code Coverage in Visual Studio 2015的现代转世我只对 VS 2019 和 .Net Core 3.1 感兴趣。
我当前的 CodeCoverage.runsettings 文件包含以下部分:
<Attributes>
<Exclude>
<Attribute>^System\.Diagnostics\.DebuggerHiddenAttribute$</Attribute>
<Attribute>^System\.Diagnostics\.DebuggerNonUserCodeAttribute$</Attribute>
<Attribute>^System\.CodeDom\.Compiler\.GeneratedCodeAttribute$</Attribute>
<Attribute>^System\.Runtime\.CompilerServices\.CompilerGeneratedAttribute$</Attribute>
<Attribute>^System\.Diagnostics\.CodeAnalysis\.ExcludeFromCodeCoverageAttribute$</Attribute>
</Exclude>
</Attributes>
重点是自动属性归因于 CompilerGenerated
属性。但是,这种方法是错误的,因为 async
方法也会被编译器转换为具有相同属性的方法。因此,使用这种方法我们就失去了对异步方法的覆盖。不好。
那么,VS 代码覆盖率是否有办法像我们在 OpenCover 或 DotCover 中那样跳过自动属性的覆盖率?
最佳答案
以下内容添加到我的 .runsettings
中文件排除了自动属性,但不包括手动编码的属性或异步方法。
下<CodeCoverage><Functions><Exclude>
<Function>.*get_.*</Function> <Function>.*set_.*</Function>
并不完美,但是...
关于.net-core - 在.Net Core 3.1中如何从代码覆盖率中排除自动属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61180574/