本主题介绍如何执行静态分析,以识别不符合预配置或自定义静态分析规则集的代码。章节目录:

增量静态分析

经过优化的 C/C++test 最大限度地减少对开发过程的影响。它通过重用原来的分析运行中收集的信息,减少后续运行的分析时间。该信息存储在工作空间的 .cpptest 文件夹中。为确保最佳性能,应避免删除 .cpptest 文件夹或删除该文件夹的内容。

分析头文件

C++test 不直接分析头文件,除非它们包含在被测试的源文件中。详细信息请参阅如何分析头文件/分析哪些文件?

分析模板函数

C++test 对实例化函数模板和类模板的实例化成员执行静态分析。详细信息请参阅C++ 模板函数支持

运行静态代码分析

对一个或多个文件执行静态代码分析的一般过程如下:

  1. 选择或创建使用您的首选静态代码分析设置的测试配置。
  2. 使用首选测试配置启动测试。
  3. 查看并响应结果。
  4. (可选)根据需要调整静态代码分析设置。

使用 cpptestcli 配置批处理模式分析

定期安排批处理模式编码标准分析可简单地执行一个内建或自定义测试配置,依据团队重视的编码标准规则来分析项目。例如:

  • cpptestcli -data  /path/to/workspace  -resource "ProjectToTest" -config team://CodingStandard-sAnalysis -publish

有关配置批处理模式测试的更多详细信息,请参阅从命令行界面进行测试

使用静态分析检测重复代码

识别和删除重复代码可以使代码更简洁、更易读、更易于维护。它可以检测在开发过程中(例如,由于复制粘贴错误)引入的类似代码片段。  这对于大型项目尤其有用,因为手动重复检测既乏味又低效。

要检测重复代码,请运行内建的“Find Duplicated Code”测试配置或包含代码重复性检测类别中所需规则的自定义测试配置。

您可以自定义用于确定是否将两个代码片段报告为重复代码片段的代码相似度。通过配置规则属性,可以忽略变量名、字符串字面量、数字字面量和布尔字面量。始终忽略所有文本流差异(如制表符、空格、换行符和注释)。

更多详细信息,请参阅代码重复性检测分类中具体规则的规则说明。

分析基于 MSBuild 的项目

C/C++test 附带一个可以快速重新配置 MSBuild 项目以生成 .bdf 文件的脚本。此脚本支持 Visual Studio 和 Cmake 生成的 MSBuild 项目。该脚本创建目标 .vcxproj 文件的备份并修改,从而在所有构建目标上启用所需的 Parasoft 功能。

C/C++test 有一个 Python 脚本启动器,用于运行包含的工具,可以在以下位置找到:

<CPPTEST_INSTALL_DIR>/bin/engine/bin/cpptestpy.exe

MSBuild 集成脚本位于以下位置:

<CPPTEST_INSTALL_DIR>/integration/msbuild/msbuild_cpptest.py

分析基于 MSBuild 的项目的步骤:

  1. 设置环境变量。

请确保未在 = 后面使用双引号,否则会导致不正确的字符串解释。  

    1. 设置 CPPTEST_INSTALL_DIR 变量。

      set CPPTEST_HOME=<CPPTEST_INSTALL_DIR>
  1. (仅限 Cmake)使用 Cmake 生成 MSBuild 文件。 

    cd <PROJECT_DIR>
    mkdir build
    cd build
    cmake ..
  2. 运行集成脚本。 

    <cpptestpy.exe> <msbuild_cpptest.py> -b -f project.vcxproj
  3. 使用 MSBuild 构建项目。

    msbuild -t:Rebuild project.sln

    将在您当前的工作目录中生成一个 .bdf 文件。 

  4.  若要启动静态分析,导入 .bdf 文件。详细信息请参阅使用现有的构建系统创建项目


  • No labels