Loading
0

通过Parasoft C/C++test 提升 CMake 项目的代码质量与测试效率

在现代C/C++软件开发中,尤其是大型、跨平台的嵌入式或系统级项目中,高效且统一的构建流程是保障开发效率与产品质量的基石。CMake作为一个强大的构建系统生成器,正是为了解决这一核心问题而设计的。它允许开发者使用一种简单统一的脚本语言(CMakeLists.txt)来描述项目的构建过程,然后根据目标平台和开发者偏好,自动生成相应的原生构建文件。极大地简化了跨平台项目的配置与管理复杂度。

>>点击获取Parasoft C/C++test试用

今天我们将详细介绍如何在Parasoft C/C++test这一专业代码质量保障平台中,通过两种方式提升项目的代码质量与测试效率,去实现高效静态代码分析与单元测试,帮助团队在复杂的项目环境中精准掌控代码质量。

在CMake 项目中,Parasoft C/C++test 主要提供两种方式:一是通过生成.json文件的形式,二是通过直接修改 CMakeLists.txt 文件的方式。接下来我们以cpptest安装包下Timer项目为例,基于Linux操作系统来进行演示。

一、.json文件的形式

1.命令行下的静态分析

复制Timer项目,进入Timer目录

项目结构如下


通过使用cd在Timer目录内创建一个构建文件夹,使用CMake调用生成脚本。

我们可以看到已经生成了compile_commands.json文件。

使用cpptestcli命令进行静态分析,如下图所示


执行成功的效果图

以上即为命令行的方式进行静态分析的步骤。

我们通过CMake工具生成一个记录了项目所有编译设置的compile_commands.json文件,然后让Parasoft C/C++test命令行工具读取这个文件来自动化地进行静态代码分析。能精准、高效、批量地检查出代码中的潜在缺陷和合规性问题,并且这种命令行方式非常适合集成到自动化流程中,实现每次代码提交后的自动检查。

如何在项中启⽤⽣成文件

⽅法1:

在CMakeLists.txt文件中将CMAKE_EXPORT_COMPILE_COMMANDS选项设置为ON。

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

⽅法2:

⽣成构建脚本时,将其添加到cmake的命令⾏调⽤中。

cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 <path_to_src>

在项目中启用compile_commands.json文件的生成,是为了向静态分析工具提供一份机器可读的、精确的项目编译数据库

该文件完整记录了构建系统(如CMake)编译每个源文件时所使用的全部命令参数。

2.以界面的形式进行静态分析和单元测试

对于生成的compile_commands.json文件进行导入项目,操作步骤如下:

以下为执行内建规则MISRA C 2023 (MISRA C 2012)执行成功的控制台效果图

以下为执行单元测试的效果图

二、修改CMakeLists.txt文件的方式

在Timer项目中,我将CMakeLists.txt中的参数修改为如下形式,

创建build2文件夹,并执行 cmake -DCPPTEST_PROJECT=ON ..

可以发现我的项目目录下多了文件,这些文件正是我们导入项目所需要的

接下来进行导入项目的操作,点击Import projects,再选择现有项目到工作空间中。

点击下一步,选择我们项目(刚才生成的两个配置文件的根目录)

这样项目就导入成功了。

导入compile_commands.json文件的核心目的,是为Parasoft C/C++test提供一份由构建系统(如CMake)自动生成的、机器可读的完整编译数据库,使其能够精准复现项目真实的构建环境。消除了因路径、宏定义或编译选项配置错误导致的误报与漏报。

Parasoft C/C++test 用到 CMake 项目中,团队基本上有两种简单又高效的选择,既可以通过导入 compile_commands.json 快速开展静态分析,也可以直接修改 CMakeLists.txt 文件,深度集成并生成 C/C++test 项目,轻松实现静态分析和单元测试。不管哪种,都能让团队在复杂的项目环境中,更顺畅地推进代码质量检查。

通过以Timer项目为例的演示,可以看出这种集成方式能够与现有 CMake构建系统无缝衔接,在不影响开发流程的同时,还能帮助团队自动、持续地执行代码合规检查与质量评估。使团队可以更有效地保障软件产品的可靠性与安全性,为交付高标准成果提供了可靠的技术保障。

关于慧都

慧都是一家行业数字化解决方案公司,专注于软件、石油与工业领域,以深入的业务理解和行业经验,帮助企业实现智能化转型与持续竞争优势。在软件工程领域,我们提供开发控件、研发管理、代码开发、部署运维等软件开发全链路所需的产品,提供正版授权采购、技术选型、个性化维保等服务,帮助客户实现技术合规、降本增效与风险可控。

慧都科技作为Parasoft公司在中国区的官方授权合作伙伴,为国内企业提供Parasoft C/C++test产品的正版授权、定制化部署与全生命周期技术支持与服务。我们致力于助力客户精准贯彻功能安全标准、全面提升软件开发效率、有效管控项目风险,最终构建符合国际标准的高质量软件体系。