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

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

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

文件过滤器

  • 时间选项:限制 C++test 只测试符合指定时间戳条件的文件。可用的时间选项包括:
    • 不筛选时间:不根据文件的最后修改日期过滤掉任何文件。
    • 只测试在截止日期之后添加或修改的文件:过滤掉自截止日期以来未添加或修改的文件。
    • 只测试最近期间之内添加或修改的文件:过滤掉在指定时间段内未添加或修改的文件。
    • 只测试修改的文件属于当前工作中分支和:过滤掉未在工作分支与指定分支或修订(或启用了默认集成流选项时的主要开发流,例如“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/**

若要包括 1)名称以”Test”开头且 2)位于名为“security”的文件夹中(位于任何项目的 src/test 目录中)的所有 .java 文件,可使用:

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

若要包括位于 1)ATM 解决方案、2)ATCMib 项目、3)CompanyTests 子文件夹中,且 4)名称以“Test”开头的所有 .cs 文件,可使用:

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

代码行过滤器 

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

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

注意

  • No labels