当前位置: 首页 > news >正文

Linux环境下,针对QT软件工程搭建C++Test单元测试环境的操作指南

文章目录

  • 前言
  • 一、安装QT
  • 二、安装C++Test
  • 三、使用QT生成.bdf文件
  • 四、创建C++Test工程
  • 注意事项


前言

C++Test是Parasoft公司出品的一款可以针对C/C++源代码进行静态分析、单元测试、集成测试的测试工具。本文主要讲解如何在Linux环境下,搭建QT插件版的C++Test测试环境。

一、安装QT

1、在官网上下载Linux环境下的QT库和QT Creator:
在这里插入图片描述
2、先安装依赖文件:

sudo apt-get install build-essential
sudo apt-get install libx11-dev libfreetype6-dev libavahi-gobject-dev libSM-dev libXrender-dev libfontconfig-dev libXext-dev

3、解压QT库安装包:

tar -zxvf qt-everywhere-opensource-src-4.8.3.tar.gz

4、配置(用于生成Makefile文件)

./configure

5、编译

make

6、安装

sudo make install

7、设置环境变量
执行gedit ~/.bashrc,添加如下内容:

QTDIR=/usr/local/Trolltech/Qt-4.8.3/
PATH=$QTDIR/bin:$PATH
MANPATH=$QTDIR/doc/man:$MANPATH
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export QTDIR PATH MANPATH LD_LIBRARY_PATH

8、给QT Creator安装文件添加可执行权限:

sudo chmod 777 qt-creator-opensource-linux-x86_64-4.8.2.run

9、安装QT Creator:

./ qt-creator-opensource-linux-x86_64-4.8.2.run

然后进入图形安装界面,安装完成后,打开软件界面如下:
在这里插入图片描述

二、安装C++Test

( 以下安装步骤不包括对C++Test软件的获取许可或破解操作,你懂的(●’◡’●) )
1、在网上下载C++test安装包
在这里插入图片描述
2、解压安装包:

tar -zxvf parasoft_cpptest_desktop_10.3.2_linux.tar.gz

3、给安装文件添加可执行权限:

sudo chmod 777 cpptest_10.3.2.169_linux.sh

4、安装C++test:

./ cpptest_10.3.2.169_linux.sh

进行默认安装即可。
5、进入如下目录,可运行“./cpptest”打开C++test软件图形界面:
在这里插入图片描述
在这里插入图片描述

三、使用QT生成.bdf文件

1、新建QT工程
在这里插入图片描述
2、编译工程
3、进入debug文件目录下,找到Makefile文件,在Makefile中新增C++Test的编译配置,如下所示:

CC      = /opt/ctest/cpptest/bin/cpptestscan gcc
CXX     = /opt/ctest/cpptest/bin/cpptestscan g++

在这里插入图片描述
4、重新编译工程,可生成.bdf文件
在这里插入图片描述

四、创建C++Test工程

1、新建工程,选择“创建来自构建数据文件(bdf)的项目”
在这里插入图片描述
2、构建数据文件选择QT中生成的.bdf文件
在这里插入图片描述
以下步骤的C++Test测试配置和其他环境下的的常规配置一样,此处仅做概要描述。
3、配置静态分析规则
在这里插入图片描述
4、进行静态分析
在这里插入图片描述
在这里插入图片描述
5、函数插桩
在这里插入图片描述
在这里插入图片描述

6、创建并执行测试用例
在这里插入图片描述
在这里插入图片描述
7、查看覆盖率
在这里插入图片描述


注意事项

1、在软件安装过程中,可能出现报错提示缺少XXX依赖软件或库等,可根据提示信息先安装依赖软件或库,然后再安装需要的软件即可;
2、编译器版本不同,可能造成软件编译时报错,可查阅资料看被安装软件的版本适合用哪个版本的编译器,重新安装该版本编译器并使用其编译即可。

http://www.lryc.cn/news/284312.html

相关文章:

  • 16k+ start 一个开源的的监控系统部署教程
  • Mermaid使用教程(绘制各种图)
  • OpenAI/ChatGPT Plus 支持的虚拟卡有哪些
  • ARM多核调度器DSU
  • vue解决部署文件缓存方式
  • 游戏开发中的噪声算法
  • CodeReview 小工具
  • UE5 C++ Slate独立程序的打包方法
  • 探索设计模式的魅力:一篇文章让你彻底搞懂建造者模式
  • Facebook广告投放指南,如何运营多个Facebook广告账户不被封?
  • 音乐人声分离工具:极简的人声和背景音乐分离工具
  • Go语言基础快速上手
  • Excel 根据日期按月汇总公式
  • 使用 crypto-js 进行 AES 加解密操作
  • Vue-30、Vue非单文件组件。
  • 7-6 实验2_1_判断两数的大小
  • POKT Network (POKT) :进军百亿美元市场规模的人工智能推理市场
  • 【STM32】STM32学习笔记-I2C通信外设(34)
  • 从数据角度分析年龄与NBA球员赛场表现的关系【数据分析项目分享】
  • 深入浅出Spring AOP
  • 火速收藏!2024 新年微信红包封面领取全攻略
  • 【RabbitMQ】RabbitMQ安装与使用详解以及Spring集成
  • 企业多云组网怎么办?
  • 背包问题(贪心) 二维01背包问题 Java
  • 2019年认证杯SPSSPRO杯数学建模D题(第二阶段)5G时代引发的道路规划革命全过程文档及程序
  • 可视化k8s页面(Kubepi)
  • 1434. 数池塘(四方向)-深度优先搜索-DFS
  • Mysql:重点且常用的操作和理论知识整理 ^_^
  • 小车辅助脚本编写
  • Modern C++ 一个例子学习条件变量