CLion中配置gtest

转载自博客园:https://www.cnblogs.com/SkySource/p/17732374.html
环境:Windows,cmake,gcc,g++,CLion

一、下载源码

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

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

输入以下命令cmake以下

使用以下命令构建

100%即构建成功

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

我这里是先创建一个gtest目录,在gtest目录下在创建一个lib目录,把libgtest.alibgtest_main.a放进去
把源码 googletest目录下的inlclude复制到第一个gtest目录下(使include与lib目录同级)

文件结构

│  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,正确示例如下:


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


原因:

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

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
根目录没有就看子目录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值