gpt4 book ai didi

c# - 从 Visual Studio 2015 中的代码覆盖率中排除自动属性

转载 作者:太空狗 更新时间:2023-10-29 20:09:45 40 4
gpt4 key购买 nike

我刚刚将一堆项目升级到 VS2015/C#6。

现在 MSTest 的代码覆盖率分析报告说一些汽车属性没有被单元测试覆盖。在 Visual Studio 2013 中情况并非如此,我怀疑这可能与 C#6 中新的自动属性功能有关。

处理由此产生的所有误报实际上违背了代码覆盖率工具的目的,因为它几乎不可能识别缺少测试覆盖率的实际代码。我们不想为我们所有的 DTO 编写单元测试,我真的宁愿不必通过使用 ExcludeFromCodeCoverage 注释每个自动属性的项目。

我在 https://github.com/iaingalloway/VisualStudioCodeCoverageIssue 创建了一个工作 MCVE


  • 在 Visual Studio 2013 Premium 或 Ultimate 中打开 VisualStudio2013.sln
  • 点击测试 -> 分析代码覆盖率 -> 所有测试。
  • 观察“代码覆盖率结果”窗口报告 0 个 block “未覆盖”。

  • 在 Visual Studio 2015 Enterprise 中打开 VisualStudio2015.sln
  • 点击测试 -> 分析代码覆盖率 -> 所有测试。
  • 观察“代码覆盖率结果”窗口报告 1 个 block “未覆盖”(ExampleDto.Value 的 getter)

是否可以像 Visual Studio 2013 那样配置 Visual Studio 2015 中的内置代码覆盖率工具来忽略自动属性?

最佳答案

作为解决方法,您可以将以下内容添加到您的 .runsettings 文件中:-

<RunSettings>
<DataCollectionRunSettings>
<DataCollector ...>
<Configuration>
<CodeCoverage>
<Functions>
<Exclude>
<Function>.*get_.*</Function>
<Function>.*set_.*</Function>
</Exclude>
...

这不是一个很好的解决方法,但只要您不使用名称中带有“get_”或“set_”的任何函数,它就应该让您获得所需的行为。

关于c# - 从 Visual Studio 2015 中的代码覆盖率中排除自动属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32329430/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com