本主题说明如何配置分析范围。
修改测试配置的范围
默认情况下,C/C++test 会分析测试配置运行时选择的资源,但您可以使用测试配置的【范围】选项卡上提供的范围选项配置更小的范围。请参见 范围选项卡设置: 定义测试哪些代码.
在项目级别修改范围
您可以通过在 GUI 中排除资源 (请参阅 Excluding Project Resources from Testing)或在命令行中运行分析时使用 -resource, -exclude,或 -include 选项来配置项目级别的范围。 (请参阅 从命令行界面进行测试).
基于源代码管理数据定义文件过滤器
您可以通过基于源控制数据设置文件过滤器,将分析范围限制为本地修改的文件或在当前工作分支上修改的文件。这使您可以在将代码检入源代码控制系统或与主要开发流程合并之前,专注于识别和修复由最近的代码更改引入的错误。
您可以定义文件过滤器:
- 在所选测试配置的图形用户界面中–请参阅 范围选项卡设置: 定义测试哪些代码.
- 通过指定高级范围设置–请参阅 Configuring File Filters with Advanced Settings. 这些设置将应用于所有测试配置并覆盖测试配置中指定的范围选项。
在配置文件过滤器之前,请确保正确配置了与支持的源代码管理系统的连接。
使用高级设置配置文件过滤器
配置文件过滤器:
创建包含 C/C++test 的高级范围设置的高级设置文件。 有关可用设置的完整列表,请参阅 Advanced Scope Settings 。高级设置文件的内容可能类似于以下内容:
// This configuration narrows down the scope of analysis to locally modified files // (including header files). scope.scontrol.files.filter.mode=local cpptest.scope.adjuster.cu.enabled=true
// This configuration narrows down the scope of analysis to files (including header files) // on the current working branch that differ from the main stream of development: scope.scontrol.files.filter.mode=branch cpptest.scope.adjuster.cu.enabled=true
// This configuration narrows down the scope of analysis to files (including header files) // on the current working branch that differ from branch "feature_372": scope.scontrol.files.filter.mode=branch scope.scontrol.ref.branch=feature_372 cpptest.scope.adjuster.cu.enabled=true
- 指定高级设置的路径。有关详细信息请参见Configuring an Advanced Settings File 。
设置文件中配置的高级范围设置适用于所有测试配置并覆盖测试配置中指定的范围选项。
高级范围设置
设置 | 描述 |
---|---|
scope.scontrol.files.filter.mode=local | 仅检查本地修改的文件。 |
scope.scontrol.files.filter.mode=branch | 仅检查当前工作分支上与参考分支不同的文件。默认情况下,参考分支是主要的集成流,例如 "master"、 "trunk"、 等。您可以使用scope.scontrol.ref.branch指定自定义分支。 |
scope.scontrol.ref.branch=[branch or revision] | 指定分支或修订的名称或 ID,与当前工作分支进行比较以识别和分析修改后的文件。它在 scope.scontrol.files.filter.mode 选项设置为 branch 时适用。 |
cpptest.scope.adjuster.cu.enabled=true | 启用检查与已修改文件属于同一编译单元的所有文件。这适用于源文件和头文件。 C/C++test 不能直接分析头文件。此选项允许您确保分析修改后的头文件,即使包含它们的源文件保持不变。 |