ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ClionLLT搭建

2022-05-25 12:00:20  阅读:194  来源: 互联网

标签:set gtest GTEST googletest ClionLLT PATH include 搭建


1. 准备工作

a.下载googletest源码

gtest源码下载地址:

下载地址:https://github.com/google/googletest

git 仓库地址:https://github.com/google/googletest.git

b.clion工程准备 

2. 目录结构

 

 3.Cmake脚本

cmake_minimum_required(VERSION 3.20)
project(CppLLT)

set(CMAKE_CXX_STANDARD 17)
add_compile_options(-Wall)

#googletest 编译脚本
set(GOOGLETEST_VERSION 3.15)
set(PATH_GTEST_MAIN ${CMAKE_SOURCE_DIR}/googletest/googletest)
set(PATH_GTEST_MOCK ${CMAKE_SOURCE_DIR}/googletest/googlemock)
#包含googletest头文件目录
set(PATH_GTEST_INC_LIST
        ${PATH_GTEST_MAIN}/include
        ${PATH_GTEST_MAIN}/include/gtest
        ${PATH_GTEST_MOCK}/include
        ${PATH_GTEST_MOCK}/include/gmock)
include_directories(${PATH_GTEST_INC_LIST})
#添加googletest需要编译的目录
add_subdirectory(${CMAKE_SOURCE_DIR}/googletest)
#googletest库
set(gtestlibs gtest gtest_main gmock gmock_main)

#添加用例目录
aux_source_directory(${CMAKE_SOURCE_DIR}/src SRCLIST_PATH_SRC)

add_executable(CppLLT main.cpp ${SRCLIST_PATH_SRC})
#链接gtest库
target_link_libraries(CppLLT ${gtestlibs})

单独放一个cmake文件也可以

buildgtest.cmake

#googletest 编译脚本
set(GOOGLETEST_VERSION 3.15)
set(PATH_GTEST_MAIN ${CMAKE_SOURCE_DIR}/googletest/googletest)
set(PATH_GTEST_MOCK ${CMAKE_SOURCE_DIR}/googletest/googlemock)
#包含googletest头文件目录
set(PATH_GTEST_INC_LIST
        ${PATH_GTEST_MAIN}/include
        ${PATH_GTEST_MAIN}/include/gtest
        ${PATH_GTEST_MOCK}/include
        ${PATH_GTEST_MOCK}/include/gmock)
include_directories(${PATH_GTEST_INC_LIST})
#添加googletest需要编译的目录
add_subdirectory(${CMAKE_SOURCE_DIR}/googletest)
#googletest库
set(gtestlibs gtest gtest_main gmock gmock_main)

#链接gtest库,下面这个脚本放在 add_executable
#target_link_libraries(CppLLT ${gtestlibs})

主CMakeList

cmake_minimum_required(VERSION 3.20)
project(CppLLT)

set(CMAKE_CXX_STANDARD 17)
add_compile_options(-Wall)

include(${CMAKE_SOURCE_DIR}/buildgtest.cmake)

#添加用例目录
aux_source_directory(${CMAKE_SOURCE_DIR}/src SRCLIST_PATH_SRC)

add_executable(CppLLT main.cpp ${SRCLIST_PATH_SRC})
#链接gtest库
target_link_libraries(CppLLT ${gtestlibs})

 

 

4. 测试用例

#include "gtest.h"

int AddTest(int a, int b)
{
    return a + b;
}

TEST(AddTest, test_t0)
{
    EXPECT_EQ(AddTest(1, 2), 3);
}

5. 主函数

#include "gtest.h"
#include "gmock.h"

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

6. 执行结果

 

 

常见问题:

1. googletest提示cmake版本要求较低冲突

CMake Deprecation Warning at googletest/googletest/CMakeLists.txt:56 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.

 

 

 这种在主目录已经指定了cmake的最低版本要求,删除googletest里面对cmake最低版本的请求即可。

 

标签:set,gtest,GTEST,googletest,ClionLLT,PATH,include,搭建
来源: https://www.cnblogs.com/hicpp/p/16308842.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有