CLion中配置gtest

这篇具有很好参考价值的文章主要介绍了CLion中配置gtest。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

环境:Windows,cmake,gcc,g++,CLion

一、下载源码

二、解压并构建(我是怎么知道的?)

进入处于解压目录的cmd窗口

CLion中配置gtest

输入以下命令cmake以下

CLion中配置gtest

使用以下命令构建

CLion中配置gtest

100%即构建成功

CLion中配置gtest

找到这些东西,复制到CLion项目中,文件结构在后面

我这里是先创建一个gtest目录,在gtest目录下在创建一个lib目录,把libgtest.alibgtest_main.a放进去

把源码 googletest目录下的inlclude复制到第一个gtest目录下(使include与lib目录同级)

CLion中配置gtest

文件结构

│  CMakeLists.txt 
├─.idea                        
├─gtest
│  ├─gtest
│  │  │  gtest-assertion-result.h
│  │  │  gtest-death-test.h
│  │  │  gtest-matchers.h
│  │  │  gtest-message.h
│  │  │  gtest-param-test.h
│  │  │  gtest-printers.h
│  │  │  gtest-spi.h
│  │  │  gtest-test-part.h
│  │  │  gtest-typed-test.h
│  │  │  gtest.h
│  │  │  gtest_pred_impl.h
│  │  │  gtest_prod.h
│  │  │  
│  │  └─internal
│  │      │  gtest-death-test-internal.h
│  │      │  gtest-filepath.h
│  │      │  gtest-internal.h
│  │      │  gtest-param-util.h
│  │      │  gtest-port-arch.h
│  │      │  gtest-port.h
│  │      │  gtest-string.h
│  │      │  gtest-type-util.h
│  │      │  
│  │      └─custom
│  │              gtest-port.h
│  │              gtest-printers.h
│  │              gtest.h
│  │              README.md
│  │              
│  └─lib
│          libgtest.a
│          libgtest_main.a
│          
├─include
│      add.h
│      
├─lib
│      
├─src
│      add.cpp
│      CMakeLists.txt
│      
└─test
    │  CMakeLists.txt
    │  test_main.cpp

test目录 存放测试函数和主函数

cmake文件:

# 指定可执行文件的生成位置
# set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin)
aux_source_directory(. TEST_LIST)
# cmake三部曲
# 指定头文件-指定库文件-链接
# 指定头文件目录
include_directories(${PROJECT_SOURCE_DIR}/gtest ${PROJECT_SOURCE_DIR}/include)
# 指定静态链接库文件目录
link_directories(${PROJECT_SOURCE_DIR}/gtest/lib)
# 执行文件
add_executable(${PROJECT_NAME} ${TEST_LIST})
target_link_libraries(${PROJECT_NAME} gtest gtest_main add)

注意

这里在写路径时,必须留一个gtest目录,因为其中的.h文件中引用的都是gtest/***.h,正确示例如下:

CLion中配置gtest
CLion中配置gtest

如果写到能暴露gtest.h一系列头文件的目录,会产生编译时报错,而这些错误将需要你修改gtest.h一系列头文件的所有#include<>引入

错误示例

CLion中配置gtest
CLion中配置gtest

原因:

CLion中配置gtest

其中原因仔细思考也是很好理解的

src目录 存放被测试的函数

cmake文件:

aux_source_directory(. SRC_LIST)

#windows系统动态库生成lib文件命令
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)

# 添加头文件路径
include_directories(${ROJECT_SOURCE_DIR}/include)

set(LIBRARY_OUTPUT_PATH "${PROJECT_SOURCE_DIR}/lib")

message("start add_library add")
add_library(add ${SRC_LIST})
message("add_library add finished")

根目录下的cmake文件:

cmake_minimum_required(VERSION 3.23.2)
project(WeightGraph)

set(CMAKE_C_COMPILER gcc)
set(CMAKE_CXX_COMPILER g++)
set(CMAKE_CXX_STANDARD 17)

add_subdirectory(src)
add_subdirectory(test)

include目录 存放头文件用于文件链接

add.h

#ifndef WEIGHTGRAPH_ADD_H
#define WEIGHTGRAPH_ADD_H

int add(int ,int );

#endif //WEIGHTGRAPH_ADD_H

add.cpp

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

test_main.cpp

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

class TestForAdd : public testing::Test {
    void SetUp() {}

    void TearDown(){}
};

TEST_F(TestForAdd,test1){
    ASSERT_EQ(12,add(4,8));
}

TEST_F(TestForAdd,test2){
    EXPECT_EQ(5,add(2,3));
}

TEST_F(TestForAdd,test3){
    EXPECT_EQ(4,add(1,2));
}

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

查看README.md

想知道什么就看谁的README.md
根目录没有就看子目录
CLion中配置gtest

CLion中配置gtest文章来源地址https://www.toymoban.com/news/detail-710170.html

到了这里,关于CLion中配置gtest的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Clion(2023)+QT(6.5)+cmake+vcpkg+Opencv(4.7)环境安装与使用

    用习惯了Clion,智能提示很棒,就不想用Qt自带的creator编辑器,并且新版的Clion支持编辑ui文件。于是搜罗了一下教程搭配一下环境安装,其实最重要的还是cmakelist的编写。 QT现在只能在线下载器安装。下载器的下载地址: 无脑最新的就好,需要注册账号,也很方便。安装时需

    2024年02月13日
    浏览(39)
  • windows下qt creator 配置编译环境gcc,g++,gdb,cmake

    MSVC :即Microsoft Visual C++ Compiler,即微软自己的编译器 MinGW :我们都知道GNU在Linux下面鼎鼎大名的gcc/g++,MinGW则是指Minimalist GNU for Windows的缩写 这里我们选择MinGW,至于Qt中,这两种模式的区别,自行查阅相关资料 在Qt 安装完成之后,gcc.exe,g++.exe,qmake.exe就已经有了,我们可

    2024年02月09日
    浏览(54)
  • Vscode+Cmake配置并运行opencv环境(Windows和Ubuntu大同小异)

    之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vs studio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vs code下

    2024年02月02日
    浏览(67)
  • Windows11+Opencv+Clion编译源码

    参考:https://www.robotsfan.com/posts/69395e08.html 注意事项 编译过程中使用的软件,开源码等所有工具的安装路径一定不要有中文和空格。 cmake过程会下载一些文件,如果是局域网的话可能下载不下来,可以事先下载好拷贝到相应目录。 OpenCV默认会编译很多功能,有些功能需要先自

    2024年02月14日
    浏览(42)
  • 【C语言基础】01环境安装 Windows下的CLion开发环境的安装

    资源:放在评论区中 把压缩包拖拽到C盘根目录,一键解压压缩包,得到文件夹mingw64 点击CLion.exe,运行安装程序 路径为默认安装,如需更改,注意路径中不要带有中文. Installation Options 全部勾选 选择我想要之后重启电脑 点击CLion,进入内部设置 点击下方continue 继续 存放在D盘,不要有中

    2024年02月01日
    浏览(53)
  • cmake应用:集成gtest进行单元测试

    编写代码有bug是很正常的,通过编写完备的单元测试,可以及时发现问题,并且在后续的代码改进中持续观测是否引入了新的bug。对于追求质量的程序员,为自己的代码编写全面的单元测试是必备的基础技能,在编写单元测试的时候也能复盘自己的代码设计,是提高代码质量

    2024年02月13日
    浏览(43)
  • 【软件】Clion 安装和环境配置

    1.Clion+mingw下载与安装:链接 Clion享用30天免费,需要登陆账号才可。 2.Windows环境使用CLion进行Android NDK开发配置 1)下载安装Android Studio最新版本,如下图进入设置,然后下载最新版本的NDK和CMake 2)进入Android Studio下载的SDK,SDK包含了Android开发的所有套件以及依赖,包含了C+

    2024年02月13日
    浏览(34)
  • CMake项目使用ctest+gtest进行单元测试

    随着CMake工具越来越强大便捷,越来越多的C/C++项目转而使用CMake来进行编译管理,它还提供了用于测试的ctest命令来执行项目中编写的单元测试。 本文就以一个实例来介绍如何使用ctest来进行单元测试。 本文实例环境VSCode+MinGW64+CMake+gtest。 需要在MinGW中安装gtest,如果没有安装

    2024年02月05日
    浏览(42)
  • Windows安装配置Rust(附CLion配置与运行)

    本文以 windows 安装为例,配置编译器为 minGW,使用 clion运行,可以不用下载 vs 和众多依赖 点击进入 rust官方网站 进行下载,我们选择64位的下载 如果你想 修改rust的安装位置 (默认C盘),下载完成后先 不要 打开,我们要先配置环境变量, CARGO_HOME ,值是你想安装的位置 右键

    2024年02月10日
    浏览(36)
  • JDK21下载+安装+环境配置教程(Windows系统)

    前言:甲骨文公司与2023.9发布JDK21,JDK21将是一个长期支持(LTS)版本,JDK20目前可以从官网下载使用。 1,搜索Oracle官网找到JDK21 Java Downloads | Oracle 2,切换Windows系统,然后点击下载(初学者下载X64 Installer就可) 3,下载完成后点击安装向导(本贴选择放在D盘目录下)  4,配置

    2024年02月08日
    浏览(67)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包