在测试期间,对于选定的测试配置, C++test 将对满足范围条件的选定资源中所有代码执行指定操作。默认情况下,C++test 检查当测试配置运行时选定资源中的所有代码。不过,您可以使用范围选项卡来配置限定条件,例如:

  • 仅测试在给定日期以后添加或修改的文件或代码行。
  • 仅测试在本地机器上添加或修改的文件或代码行。
  • 仅测试由特定用户修改的文件。
  • 仅测试匹配某些筛选条件的文件
  • 排除从测试中自动生成的代码

请注意,仅当您使用受支持的源代码管理系统下的项目时,某些文件过滤器和行过滤器才适用。范围选项卡具有以下设置:

文件过滤器

  • 时间选项限制不符合指定时间戳标准的测试文件中的 C++test。可用的时间选项包括:
    • 没有时间过滤器:根据文件的最后修改日期未过滤掉任何文件。
    • 只测试在截至日期之后添加或修改的文件:过滤出自截止日期以来未添加或修改的文件。
    • 仅测试最近n天内添加或修改的文件:过滤出在指定时间段内未添加或修改的文件。
    • 仅测试在当前工作分支和____之间修改的文件: 过滤掉未在工作分支与指定分支或修订版(或主要的开发流,如果启用了主要集成流选项的情况下,例如如"master"或"trunk")之间添加或修改的文件。为了使此选项生效,请确保正确配置了与源控制系统的连接,并根据该源控制系统中的数据计算了作者身份。仅 Git SCM 支持此选项。
    • 仅测试在本地添加或修改的文件:过滤出未在本地计算机上添加或修改的文件。为了使此选项生效,请确保正确配置了与源控制系统的连接,并根据该源控制系统中的数据计算了作者身份。
  • 作者选项:限制不符合指定作者条件的测试文件中的 C++test。可用的作者过滤器选项包括:
    • 没有作者过滤器:根据作者未过滤掉任何文件。
    • 仅测试用户编写的文件:过滤掉所有未由指定用户编写的文件。例如,您可以使用它来集中精力处理您(或一组选定的团队成员)处理过的文件。来指定多个用于,使用逗号分隔的列表 ( 例如: matt, tom, joe)。
  • 路径选项:  配置 C++test 以筛选或筛选出符合指定筛选条件的文件。使用“接受”过滤器来指定您想要包括的文件类型。使用“拒绝”过滤器可以指定您想要排除的文件类型。
  • 内容选项:将 C++test 配置为跳过包含指定标记的任何文件(例如,自动生成的文件)。要使用此功能,请启用 跳过具有与以下任何正则表达式匹配的内容的文件,然后确保 文件内容正则表达式列表包含您想要跳过的文件中使用的标记。
    • 如果您想要测试包含此标记的文件中的某些代码,请使用行过滤器的代码块选项来指示 C++test 如何找到要测试的部分。

过滤器提示和示例

提示

  • 可以使用 Perl 样式的表达式。
  • 支持以下通配符:
    • * 匹配 0 个或多个除 '/’以外的字符。
    • ?  匹配除'/'以外的任何单个字符。
    • ** 匹配 0 个或多个字符,包括 '/'。 这允许您可以包含路径元素。
  • 正则表达式可用于识别特定差异。例如,如果您想标记添加,删除或修改 TODO 标签的源代码变更,则可以使用不同正则表达式.*TODO.*

示例

基本文件掩码可能是:

  • *.java, *.xml, *.properties
  • *.c, *.cpp, *.h, *.cc, *.hpp, makefile, .project, .classpath
  • *.c, *.cpp, *.h, *.cc, *.hpp, makefile, *.sln, *.prj, *.res
  • *.cs, *.vb, *.sln, *.prj, *.resx

欲包括路径中包含名为"bank"或"customer"的文件夹的每个文件,则使用: 

  • **/bank/**, **/customer/**

欲包括路径中包含以"bank"开头,"customer"开头或以"invoice"结尾的名称的文件夹的每个文件,则使用: 

  • **/bank*/**, **/*customer*/**, **/*invoice/**

欲包括以下每个.java 文件,其1)名称以 "Test”开头,且2)位于名为 "security”的文件夹中(位于任何项目的src / test目录中),则使用:

**/src/test/**/security/Test*.java 

欲包括1)在 ATM 解决方案中,2)在 ATCMib 项目中 3)在 CompanyTests 子文件夹中,4)名称以“ Test”开头的每个 .cs 文件,则使用:

ATM/ATMLib/CompanyTests/**/Test*.cs 

代码行过滤器 

限制 C++test 操作的代码行。先应用文件过滤器,因此到代码行过滤器的代码必须已经通过文件过滤器。可用的行过滤器选项包括:

  • 时间选项:限制不符合指定时间戳标准的代码测试行中的 C++test。可用的时间选项包括:
    • 没有时间过滤器:根据上次修改日期未过滤掉任何代码行。
    • 仅测试自截止日期以来添加或修改的行:过滤掉自截止日期以来未添加或修改的代码行。此功能仅适用于受支持的源代码管理系统下的文件。
    • 仅测试最近n 天内添加或修改的行:过滤掉在指定时间段内未添加或修改的代码行。
    • 仅测试在本地添加或修改的行:过滤掉未在本地计算机上添加或修改的代码行。此功能仅适用于受支持的源代码管理系统下的文件。
  • 作者选项:限制不符合指定作者条件的代码测试行中的 C++test。可用的作者过滤器选项包括:
    • 没有作者过滤器:根据其作者未过滤掉任何代码行。
    • 仅测试由首选用户编写的行:过滤掉未由指定用户编写的任何代码行(即过滤掉另一位用户编写的任何代码行)。使用逗号分隔的列表来指定多个用户。
  • 代码块选项:配置 C++test 以仅分析在指定的开始标记和结束标记之间发生的代码,并(可选)跳过不包含指定标记的文件。要使用此功能,请启用 使用自定义开始/结束注释 (正则表达式) 来标记要分析的代码, 然后指定用于指示您想要测试的代码块的开始和结束的标记。如果要跳过缺少这些开始标记和结束标记的任何文件, 请同时启用跳过没有这些标记的文件

注释

  • 代码作者信息和最后修改日期是根据“范围和作者偏好”页面中设置的方式确定的;有关可用设置的详细信息,请参见 配置任务分配和代码作者设置
  • No labels