.net-core - 在.Net Core 3.1中如何从代码覆盖率中排除自动属性?

标签 .net-core code-coverage

这个问题是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/

相关文章:

.net - PayPal .Net 从一个客户转移到另一个客户

.net - 使用官方 Microsoft dotnet docker 镜像在 linux 上构建 dotnet

code-coverage - 无论如何有将两个gcov文件合并为一个

python - 使用 Py.Test 测量特定文件的单元测试覆盖率

java - 并行 Sonar 扫描仪执行锁定错误

webpack - dotnet 发布在预发布完成之前运行

c# - 如何调试 Expression.Lambda? (.net core 2.1 和 .net core 3.1 之间表达式树评估的差异)

Linux 上 .NET Core 中的 C# : Referencing or using . so 文件

java - 为什么这个语句没有被标记为完全被 elemma 覆盖?

android - Sonarqube 整体覆盖范围与 jacoco 报告覆盖范围不匹配