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

news2024/10/1 17:20:00

文章目录

  • 前言
  • 一、安装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.coloradmin.cn/o/1395370.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大数据开发之Hadoop(优化新特征)

第 1 章:HDFS-故障排除 注意:采用三台服务器即可,恢复到Yarn开始的服务器快照。 1.1 集群安全模块 1、安全模式:文件系统只接收读数据请求,而不接收删除、修改等变更请求 2、进入安全模式场景 1)NameNod…

GPT应用开发:GPT插件开发指南

欢迎阅读本系列文章!我将带你一起探索如何利用OpenAI API开发GPT应用。无论你是编程新手还是资深开发者,都能在这里获得灵感和收获。 本文,我们将继续展示聊天API中插件的使用方法,让你能够轻松驾驭这个强大的工具。 插件运行效…

记一次 .NET某道闸收费系统 内存溢出分析

一:背景 1. 讲故事 前些天有位朋友找到我,说他的程序几天内存就要爆一次,不知道咋回事,找不出原因,让我帮忙看一下,这种问题分析dump是最简单粗暴了,拿到dump后接下来就是一顿分析。 二&…

移动web开发流式布局

1.0 移动端基础 1.1 浏览器现状 PC端常见浏览器:360浏览器、谷歌浏览器、火狐浏览器、QQ浏览器、百度浏览器、搜狗浏览器、IE浏览器。 内核: 浏览器内核备注Safariwebkitwebkit内核是苹果公司开发的一款渲染引擎,目前已被很多手机厂商所采…

Java开发的审批流系统,前端使用vue,支持常态化工作审批流程

一、项目形式 springbootvueactiviti集成了activiti在线编辑器,快速开发平台,可插拔工作流服务。 二、项目介绍 本项目拥有用户管理,部门管理,代码生成,系统监管,报表,大屏展示,业…

文心一言使用分享

ChatGPT 和文心一言哪个更好用? 一个直接可以用,一个还需要借助一些工具,还有可能账号会消失…… 没有可比性。 通用大模型用于特定功能的时候需要一些引导技巧。 import math import time def calculate_coordinate(c, d, e, f, g, h,…

一套可以替代人工的Cnc机床自动上下料机器人

Cnc机床自动上下料|整体解决方案 CNC机床自动上下料是指通过自动化设备和系统,实现CNC机床在加工过程中自动进行上下料操作。这种自动化系统通常包括自动送料机和卸料机,可以根据加工工件的尺寸和形状自动调整上下料的位置和角度,从而提高生产…

SpringCloud整合Zookeeper代替Eureka案例

文章目录 本期代码下载地址zookeeper简介zookeeper下载安装新建服务提供者测试 新建消费者测试 本期代码下载地址 地址:https://github.com/13thm/study_springcloud/tree/main/days4 zookeeper简介 zookeeper是一个分布式协调工具,可以实现注册中心功能 关闭Lin…

VMware Workstation Pro虚拟机搭建

下载链接:Download VMware Workstation Pro 点击上方下载,安装过程很简单,我再图片里面说明 等待安装中。。。。。是不是再考虑怎样激活,我都给你想好了,在下面这个链接,点赞收藏拿走不谢。 https://downl…

DBA技术栈MongoDB:简介

1.1 什么是MongoDB? MongoDB是一个可扩展、开源、表结构自由、用C语言编写且面向文档的数据库,旨在为Web应用程序提供高性能、高可用性且易扩展的数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当…

ElasticSearch的常用增删改查DSL和代码

es增删改查常用语法 我们日常开发中,操作数据库写sql倒是不可能忘记,但是操作es的dsl语句有时候很容易忘记,特地记录一下方便查找。 DSL语句 1、创建索引 -- 创建索引 PUT /my_index {"mappings": {"properties": {&…

数据结构:链式栈

stack.h /* * 文件名称&#xff1a;stack.h * 创 建 者&#xff1a;cxy * 创建日期&#xff1a;2024年01月18日 * 描 述&#xff1a; */ #ifndef _STACK_H #define _STACK_H#include <stdio.h> #include <stdlib.h>typedef struct stack{int data…

查找局域网树莓派raspberry的mac地址和ip

依赖python库&#xff1a; pip install socket pip install scapy运行代码&#xff1a; import socket from scapy.layers.l2 import ARP, Ether, srpdef get_hostname(ip_address):try:return socket.gethostbyaddr(ip_address)[0]except socket.herror:# 未能解析主机名ret…

Leetcode2207. 字符串中最多数目的子字符串

Every day a Leetcode 题目来源&#xff1a;2207. 字符串中最多数目的子字符串 解法1&#xff1a;贪心 一次遍历 设 pattern 的第一个字符为 x&#xff0c;第二个字符为 y。 根据题意&#xff0c;x 插入的位置越靠左&#xff0c;答案的个数越多&#xff1b;y 插入的位置越…

大数据StarRocks(八):集群扩缩容

一、FE扩缩容 StarRocks FE 节点分为 Follower 节点和 Observer 节点。Follower 节点参与选举投票和写入&#xff0c;Observer 节点只用来同步日志&#xff0c;扩展读性能。 注意&#xff1a; 所有 FE 节点的 http_port 必须相同。Follower FE 节点&#xff08;包括 Leader …

大数据工作岗位分析

前言&#xff1a;随着大数据需求的增多&#xff0c;许多中小公司和团队也新增或扩展了大数据工作岗位&#xff1b;但是却对大数据要做什么和能做什么&#xff0c;没有深入的认识&#xff1b;往往是招了大数据岗位&#xff0c;搭建起基础能力后&#xff0c;就一直处于重复开发和…

K8S Informer机制原理解读 | 架构设计

在Kubernetes系统中&#xff0c;组件之间通过HTTP协议进行通信&#xff0c;在不依赖任何中间件的情况下需要保证消息的实时性、可靠性、顺序性等。那么Kubernetes是如何做到的呢&#xff1f;答案就是Informer机制。Kubernetes的其他组件都是通过client-go的Informer机制与Kuber…

Git入门详细教程

一、Git概述&#x1f387; Git官网 Git是一个开源的分布式版本控制系统&#xff0c;用于跟踪文件的变化和协作开发。它允许多个开发者在同一项目中共同工作&#xff0c;并能够有效地管理代码的版本和历史记录。Git可以帮助开发团队更好地协作&#xff0c;追踪代码变更&#xf…

Linux shell编程学习笔记40:stat命令

程序员必备的面试技巧 “程序员必备的面试技巧&#xff0c;就像是编写一段完美的代码一样重要。在面试战场上&#xff0c;我们需要像忍者一样灵活&#xff0c;像侦探一样聪明&#xff0c;还要像无敌铁金刚一样坚定。只有掌握了这些技巧&#xff0c;我们才能在面试的舞台上闪耀…

深入探究 JavaScript 中的 String:常用方法和属性全解析(下)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…