【问题标题】:How do I exclude all constructors from Visual Studio Code Coverage results?如何从 Visual Studio 代码覆盖结果中排除所有构造函数?
【发布时间】:2023-03-09 15:48:01
【问题描述】:

我正在创建一个 RunSettings 文件,它将从 VS2012 的代码覆盖结果中排除所有属性和构造函数。我知道 ExcludeFromCodeCoverage 属性,但是我想在 runsettings 文件中使用正则表达式来实现这一点。我的 get 和 set 方法的正则表达式确实可以消除属性的代码覆盖,但它不适用于构造函数。

<Functions>
                        <Exclude>
                            <Function>^Fabrikam\.UnitTest\..*</Function>
                            <Function>^std::.*</Function>
                            <Function>^ATL::.*</Function>
                            <Function>.*::__GetTestMethodInfo.*</Function>
                            <Function>^Microsoft::VisualStudio::CppCodeCoverageFramework::.*</Function>
                            <Function>^Microsoft::VisualStudio::CppUnitTestFramework::.*</Function>                             
                             <Function>.*\.ctor.*</Function>                                
                              <Function>.*\.set_.*</Function>
                              <Function>.*\.get_.*</Function>
                        </Exclude>
                    </Functions>

【问题讨论】:

  • 那些没有默认实现但实际上有应该测试/覆盖的真实代码的属性/构造函数呢?
  • 愚蠢的观察,但是如果不使用构造函数,那么类也不会 - 编写一些测试或删除未使用的代码
  • 是的,如果构造函数正在执行任何类型的逻辑,我同意它们应该被测试,但有时有一些不同的重载除了赋值之外没有真正做任何事情。我想有人可能会争辩说应该对这些进行测试。

标签: visual-studio visual-studio-2012 code-coverage


【解决方案1】:

你试过了吗

<Function>.*\.\.ctor.*</Function>

因为 ctor 前面已经有一个点

【讨论】:

  • 我没试过,但也没有用。也许是不可能的。
【解决方案2】:

我今天遇到了同样的问题。在玩了一些正则表达式之后,我想出了这个:

<Function>.*(\.[^\.\(]*)\1\(.*</Function>

or try here 正则表达式

【讨论】:

    猜你喜欢
    • 2022-06-30
    • 1970-01-01
    • 1970-01-01
    • 2016-09-07
    • 1970-01-01
    • 1970-01-01
    • 2022-10-08
    • 1970-01-01
    相关资源
    最近更新 更多