CLion下的gtest测试

2023-05-16

在mac环境中,使用CLion编译的简单gtest程序

一、下载gtest源码
加入工程中:
在这里插入图片描述
二、编写CMakeList.txt 文件
在文件中添加头文件和链接库文件,并将链接库文件与目标文件进行链接

# cmake最低版本号要求
cmake_minimum_required(VERSION 3.14)

# 项目名
project(TestAdd2)

set(CMAKE_CXX_STANDARD 14)

# 添加头文件
include_directories(
        ${CMAKE_CURRENT_SOURCE_DIR}/include
        ${CMAKE_CURRENT_SOURCE_DIR}/googletest/include
)

# 添加下级目录,生成.a文件
add_subdirectory( ./googletest)

# 添加连接库
link_directories(
        ${CMAKE_CURRENT_SOURCE_DIR}/lib
        ${CMAKE_CURRENT_SOURCE_DIR}/googletest
)

set(SOUCE_FLIES
        main.cpp
        lib/add.cpp
        include/add.h
        )
        
# 指定可执行文件的生成位置
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin")

# 指定生成目标
add_executable(TestAdd ${SOUCE_FLIES})

# 将目标文件与库文件进行链接
target_link_libraries(TestAdd gtest)

三、编写代码
add.h

#ifndef TESTADD2_ADD_H
#define TESTADD2_ADD_H

int add(int n1,int n2);

#endif //TESTADD2_ADD_H

add.cpp

#include "../include/add.h"

int add(int n1,int n2)
{
    return n1+n2;
}

main.cpp

#include <iostream>
#include "add.h"
#include "gtest/gtest.h"


TEST(TestCase,test1 ){
    ASSERT_EQ(12,add(4,8));
}

TEST(TestCase,test2){
    EXPECT_EQ(5,add(2,3));
}

TEST(TestCase,test3){
    EXPECT_EQ(3,add(1,2));
}

int main(int argc, char **argv)
{
    testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}

运行结果为:
在这里插入图片描述
此外,可以从终端进入当前目录的bin目录中,执行绿色的可执行文件运行该程序

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CLion下的gtest测试 的相关文章

  • CLion 2020.3 亮点解析:具有root权限的运行和调试能力

    CLion是一款专为开发C及C 所设计的跨平台IDE 它是以IntelliJ为基础设计的 包含了许多智能功能来提高开发人员的生产力 这种强大的IDE帮助开发人员在Linux OS X和Windows上来开发C C 同时它还使用智能编辑器来提
  • C/C++ 开发利器 CLion安装与配置

    概述 CLion是Jetbrains公司旗下新推出的一款专为开发C C 所设计的跨平台IDE 它是以IntelliJ为基础设计的 同时还包含了许多智能功能来提高开发人员的生产力 提高开发人员的工作效率 这个强大的IDE不仅可以帮助开发人员在
  • 遇见gtest--事件

    1 前言 在单元测试中 我们经常需要在某个测试套件 测试用例或者整个测试运行之前进行前置条件设置及检查 或者运行之后对运行结果进行校验等操作 在gtest中 称之为事件机制 gtest将事件按照作用的范围不同进行划分 从大到小总共分为3个层
  • GTest源码剖析(六)——RUN_ALL_TESTS

    GTest源码剖析 RUN ALL TESTS GTest源码剖析RUN ALL TESTS RUN ALL TESTS源码分析 1 UnitTestRun 2 HandleExceptionsInMethodIfSupported 3 U
  • Clion 使用自己编写的 Makefile编译

    Clion 目前支持使用 cmake 来编译代码 如果习惯了自己写 makefile 那么还需要通过 cmake 的 add custom target 来调用make 命令来实现编译了 参考了http stackoverflow com
  • Linux下使用gtest对接口进行单元测试

    目录 1 背景 2 gtest 断言 2 1 布尔值判断 2 2 二进制比较 2 3 字符串比较 2 4 浮点数比较 3 实践 3 1 框架使用 3 2 用例编写 3 3 编译运行 4 结论 1 背景 工程中涉及基础接口的设计 为了保证接口
  • gtest里面的断言EXPECT_EQ和ASSERT_EQ的区别

    tips 主要用于记录工作中遇到的问题及解决方案 最近刚开始使用gtest 对里面的断言EXPECT EQ和ASSERT EQ的区别有疑惑 故记录下来 以备后续查看 TEST Binary test std string strPath O
  • clion file and code templates

    主要用于 文件命名为 my class 时 生成的类为 MyClass c class header 和 都是被分割的对象 parse C File Header h ifndef INCLUDE GUARD define INCLUDE
  • 克利翁和 CMake。如何添加库(*.so)

    我正在尝试在 Clion IDE 中编写 c c 代码 我需要在我的项目中添加一些共享库 此时 我只想运行主函数 它将添加我的外部库 libAPIenergy so 具有的所有函数 我尝试了该论坛的一些解决方案 但没有一个有帮助 下面我将提
  • 如何在 Clion 和 CMake 中添加 allegro 库?

    我正在尝试使用 Clion IDE 编译我的游戏项目 但在移植 allegro 5 时遇到问题 我收到此错误 main cpp 2 10 fatal error allegro allegro h file not found includ
  • 如何更改程序的工作目录

    在 Mac 上试用 Clion EAP 如何更改已启动程序的当前工作目录 它似乎被设置为二进制文件的输出目录 这可以通过以下方式更改Run gt Edit Configurations 对话框 就像 Idea 一样 需要进行更改的组合CMa
  • CLion 未在终端中运行

    在 CLion 的嵌入式终端中放置某些字符 单击 运行 按钮时弹出的 运行 选项卡 时存在此错误 我发现如果我更改 CLion 中的终端 就不会发生这种情况 我将终端更改为 cmder 现在一切正常 除了一件事 我不知道如何让 CLion
  • 链接共享dll库cmake clion项目

    我目前在 Clion 上有两个使用 cmake 的 C 项目 其中一个项目名为 sharedLibsDemo 我试图在该项目中创建一个共享库 在另一个项目中 我想使用由 共享 项目创建的库 目前 在 sharedLibsDemo 项目中 我
  • Clion远程开发无法解析头文件,但是代码可以正常编译运行

    问题 当我在使用Clion进行远程开发时 需要用到Opencv库 我首先在CMakeLists txt添加了opencv库 如下 find package OpenCV REQUIRED INCLUDE DIRECTORIES OpenCV
  • 如何配置 CLion 标准控制台输出?

    Problem CLion 不会出于调试目的输出任何控制台输出 我将 CLion 与 MingW 编译器和 cmake 一起使用 无论我是否使用 std cout lt lt Testing lt lt std endl Or printf
  • VSCode 中 JetBrains 的“部署”等效项?

    在 JetBrains IDE 例如 CLion 或 PyCharm 中 我可以设置 部署 这样如果我右键单击任何本地文件或目录 我可以通过 SSH 将其 部署 到远程服务器上的相应位置 通信是通过多个 映射 建立的 它比手动 scp 每个
  • 如何使用 CMake 在调试器中将 follow-fork-mode 设置为子模式

    我有Linux系统 我写程序使用克利翁集成开发环境其中使用CMake 我的计划中有一部分我想要调试子进程我从这个论坛上阅读了一些主题 但我仍然不知道如何或在哪里可以打开此功能 gdb 调试 fork 后的子进程 配置了 follow for
  • 使用 CMake 构建 Windows DllMain DLL

    我有一个类似的问题this one https stackoverflow com questions 29490489 create a windows shared library with dllmain function mingw
  • c++:错误:无法识别的命令行选项“-std=c++14”

    我刚刚将我的电脑从 Ubuntu 15 10 迁移到 Linux Mint 17 3 在此转变之前 该项目在 CLion 中编译得很好 现在 它给出了以下错误 c 错误 无法识别的命令行选项 std c 14 这可能是由于我的 CMake
  • CLion 行注释的自动缩进不一致

    CLion 中出现一些奇怪的自动缩进 我不明白为什么 这是一个例子 int i1 5 some comments then I hit Enter auto indentation goes here I hit Enter again I

随机推荐

  • K8S CPU 请求和限制,是否有很好的选择?

    Limits 和 Requests 并不是 CPU 管理的灵丹妙药 xff0c 在某些情况下 xff0c 其他替代方案可能是更好的选择 在这篇博文中 xff0c 您将了解到 xff1a CPU requests 如何工作CPU limits
  • 作为一名Linux用户,你得了解这15个工具!

    来源 xff1a 浩道Linux 在普通人眼里 xff0c 使用Linux系统的用户本身已经很有 极客范儿 了 xff0c 但是在技术人员眼中 xff0c 这只是很普通的层级 使用本文推荐的几个Linux系统下的工具 xff0c 能让你瞬间
  • 虚拟网络namespace 到bridge

    前言 容器的网络是一大难点 xff0c 不管是docker 还是kubernetes 都绕不开计算机网络 以下的介绍主要以计算机网络的namespace 和bridge 两个方面来展开介绍 xff0c 方便深入理解容器的网络原理 1 nam
  • 用OpenCV实现目标追踪的八种方法(转)

    原文地址 xff1a http m elecfans com article 722414 html 编者按 xff1a 目标跟踪作为机器学习的一个重要分支 xff0c 加之其在日常生活 军事行动中的广泛应用 xff0c 很多国内外学者都对
  • turbostat超频检测工具

    介绍 turbostat为Intel提供的超频检测工具 xff0c 可以真正在Linux下获取睿频频率的工具 由下可知 xff1a 物理cpu个数为2 xff0c 核心数为14 xff0c 支持超线程 xff0c 逻辑cpu数为56 xff
  • C# HttpClient Digest 摘要认证 Cookie设置

    C HttpClient Digest 摘要认证 Cookie设置 1 创建凭证信息集 2 创建HttpClientHandler 3 创建HttpClient 4 发生请求 span class token comment 创建凭证信息集
  • MongoDB 批量操作(bulkWrite)

    一 概述 mongodb 3 2 版中的新版本提供了db collection bulkWrite 方法提供了执行批量插入 更新和删除操作的能力 mongodb 还支持批量插入 db collection insertMany 1 1 语法
  • Linux动态库的编译与使用(两种方式:链接进可执行程序、动态加载)

    第一步 xff1a 编写Linux程序库 文件1 动态库接口文件 span class token comment 动态库接口文件getmaxlen h span span class token macro property span c
  • ES 索引文档,按_id查找、更新、删除文档

    一 索引 xff08 新建 xff09 文档 通过使用 index API xff0c 文档可以被 索引 存储和使文档可被搜索 但是首先 xff0c 我们要确定文档的位置 正如我们刚刚讨论的 xff0c 一个文档的 index type 和
  • ES排序

    排序 为了按照相关性来排序 xff0c 需要将相关性表示为一个数值 在 Elasticsearch 中 xff0c 相关性得分 由一个浮点数进行表示 xff0c 并在搜索结果中通过 score 参数返回 xff0c 默认排序是 score
  • ES基于completion suggest实现搜索提示

    Term Suggester xff0c 基于编辑距离 xff0c 对analyze过的单个term去提供建议 xff0c 并不会考虑多个term 词组之间的关系 quert gt queryPhrase Suggester xff0c 在
  • 时间间隔宏计算

    对结果按时间间隔分桶 span class token macro property span class token directive keyword define span TIME INTERVAL a b a lt lt 32 4
  • 容器环境下IP跨网闸映射kafka部署

    一 listeners 和 advertised listeners 在公司内网部署 kafka 集群只需要用到 listeners xff0c 内外网需要作区分时才需要用到advertised listeners listeners 学名
  • C/C++ 中头文件相互包含引发的问题(was not declared in this scope)

    问题引入 最近遇到一个问题 xff0c 重构的代码编译报定义的某个宏was not declared in this scope xff0c 但是明明已经引入了包含此宏的头文件 问题分析 转载内容 我把问题脱离于项目简单描述一下 xff1a
  • 字符的全排列、字符的组合

    一 字符的全排列 题目描述 输入一个字符串 按字典序打印出该字符串中字符的所有排列 例如输入字符串abc 则打印出由字符a b c所能排列出来的所有字符串abc acb bac bca cab和cba 输入描述 输入一个字符串 长度不超过9
  • HTTP带用户名和密码请求

    import java io IOException import org apache commons codec binary Base64 import com cn mid system urls UrlUtils import o
  • n*m的格子中正方形个数和长方形个数

    问题描述 1 xff0e 设有一个nm方格的棋盘 xff08 1 m n 100 xff09 求出该棋盘中包含多少个正方形 多少个长方形 xff08 不包括正方形 xff09 例如 xff1a 当n 61 2 xff0c m 61 3时 正
  • Linux数字权限

    linux系统文件夹 从左至右 xff0c 第一位数字代表文件所有者的权限 xff1b 第二位数字代表同组用户的权限 xff1b 第三位数字代表其他用户的权限 而具体的权限是由数字来表示的 xff1a 读取的权限等于4 xff0c 用r表示
  • 八大排序算法C语言实现

    1 插入排序 1 1 直接插入排序 基本原理 xff1a 将第n个数插入已经排序好的 xff0c 长度为n 1的序列中 从n 1长度的序列中查找出待插入的元素应该插入的位置 xff1b 给插入元素腾出空间 操作方法 xff1a 从第2个数开
  • CLion下的gtest测试

    在mac环境中 xff0c 使用CLion编译的简单gtest程序 一 下载gtest源码 加入工程中 xff1a 二 编写CMakeList txt 文件 在文件中添加头文件和链接库文件 xff0c 并将链接库文件与目标文件进行链接 sp