IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> GoogleTest入门使用(基于CMake) -> 正文阅读

[C++知识库]GoogleTest入门使用(基于CMake)

GoogleTest是谷歌推出的C++测试框架,本文讲述如何使用GoogleTest去测试程序,基于CMake搭建框架来阐述具体步骤。

运行环境是Debian 10(安装在虚拟机里),GoogleTest版本是1.11.0,使用VSCode的远程SSH连接Debian 10


一 下载GoogleTest

首先创建目录gtest_test并cd进入,然后使用下面命令下载GoogleTest,

git clone -b release-1.11.0 https://github.com/google/googletest.git

二 搭建工程

工程的整体结构如下,
在这里插入图片描述
src目录里是待测的源代码,test目录里是测试用例,整体工程使用CMake来控制。

gtest_test目录下的CMakeLists.txt控制全局,其内容如下,

cmake_minimum_required(VERSION 3.5)

project(demo)


set(CMAKE_C_STANDARD 99)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)

include_directories(src)

enable_testing()

# 编译googletest
add_subdirectory(googletest)

# 把待测源码编译成一个静态库
add_library(mycode STATIC src/mycode.cpp src/mycode.h)

# 编译测试用例
add_subdirectory(test)

test目录下的CMakeLists.txt内容如下,

cmake_minimum_required(VERSION 3.5)


set(This ExampleTest)

set (Sources
    ExampleTest.cpp
)

add_executable(${This} ${Sources})

# 链接gtest库和我们的mycode库
target_link_libraries(${This} PUBLIC
    gtest_main
    mycode
)

add_test(
    NAME ${This}
    COMMAND ${This}
)

最后的add_test是为了使用ctest来执行测试用例,也可以不加,后面会讲述。

src/mycode.h内容如下,

#ifndef __MY_CODE_H__
#define __MY_CODE_H__

bool func(void);

#endif

src/mycode.cpp内容如下,

#include "mycode.h"

bool func(void)
{
    return true;
}

test/ExampleTest.cpp内容如下,只是测试mycode提供的函数func()

#include <gtest/gtest.h>
#include "mycode.h"

TEST(ExampleTest, SimpleFirstTest)
{
    EXPECT_TRUE(func());
}

这里使用了gtest提供的TEST()和EXPECT_TRUE()


三 运行测试用例

有2种方法,

1. 手动运行

cd到build目录,执行下面命令,

cmake .. && make

OK后,运行测试用例,

./test/ExampleTest

结果如下,
在这里插入图片描述

2. 自动运行

需要先在VSCode里安装CMake Tools的扩展,
在这里插入图片描述
工程搭建好之后,按F7进行编译,然后在VSCode下面的工具栏里找到 Run CTest,
在这里插入图片描述
点击运行,如下,
在这里插入图片描述
而且会显示1/1 test passing,前面的1是指1个test case,后面的1是指1个test suite;一个test suite里可以包含多个test case。

感觉手动运行效果更好点,有颜色提示,如果出错,会出现红色。


四 总结

本文讲述了GoogleTest的简单入门使用,基于CMake,可以看出还是比较好用的。关于这个GoogleTest的细节可以参考其官方文档。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-03 16:54:12  更:2021-10-03 16:56:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:46:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码