在 CLion 中设置 Google 测试

问题描述 投票:0回答:4

我已经在网上坐了几个小时了,已经尝试在 Linux 中的 Clion 上设置 Google 测试,但没有找到任何东西。

有人可以指导我进行设置吗?

c++ googletest linux-mint clion
4个回答
41
投票

创建新项目

  1. 在我的 ClionProjects 文件夹中创建一个存储库
    • cd ~/ClionProjects
    • mkdir .repo
    • cd .repo
  2. 从 github 克隆 DownloadProject
    • git clone https://github.com/Crascit/DownloadProject.git
  3. 创建一个带有 src 和测试目录的 C++ 项目

添加以下文件:

CMakeLists.txt

cmake_minimum_required(VERSION 3.3)

project(MyProjectName)

add_subdirectory(src)
add_subdirectory(test)

src/CMakeLists.txt

#set(core_SRCS ADD ALL SOURCE FILES HERE)

add_library(core ${core_SRCS})
add_executable(exe main.cpp)
target_link_libraries(exe core)

[我们编译一个库,以便我们可以将其包含在测试项目中]

测试/CMakeLists.txt

cmake_minimum_required(VERSION 3.3)

set(REPO ~/ClionProjects/.repo)

project(Test)

project(Example)

include(CTest)
enable_testing()

#set(gtest_disable_pthreads on) #needed in MinGW
include(${REPO}/DownloadProject/DownloadProject.cmake)
download_project(
        PROJ                googletest
        GIT_REPOSITORY      https://github.com/google/googletest.git
        GIT_TAG             master
        UPDATE_DISCONNECTED 1
        )

add_subdirectory(${googletest_SOURCE_DIR} ${googletest_BINARY_DIR} EXCLUDE_FROM_ALL)

#set(test_SRCS ADD ALL TEST SOURCE FILES HERE)
add_executable(runUnitTests gtest.cpp ${test_SRCS})
target_link_libraries(runUnitTests gtest gmock core)
#add_test(runUnitTests runUnitTests) #included in all tutorials but I don't know what it actually does.

测试/gtest.cpp

#include "gtest/gtest.h"

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

注意:如果您自己从事 git 项目,最好将

DownloadProject.cmake
DownloadProjects.CmakeLists.cmake.in
文件包含在项目中。


18
投票

1.Git 克隆 google-test C++ 测试框架

From https://github.com/google/googletest.git

2.包含 google-test 目录

#Add the google test subdirectory
add_subdirectory(PATH_TO_GOOGLETEST)

#include googletest/include dir
include_directories(PATH_TO_GOOGLETEST/googletest/include)

#include the googlemock/include dir
include_directories(PATH_TO_GOOGLETEST/googlemock/include)

3.将您的可执行文件与 google-test 链接(这是在创建可执行文件之后)

#Define your executable
add_executable(EXECUTABLE_NAME ${SOURCE_FILES})

#Link with GoogleTest
target_link_libraries(EXECUTABLE_NAME gtest gtest_main)

#Link with GoogleMock
target_link_libraries(EXECUTABLE_NAME gmock gmock_main)

3
投票

这是一个使用 GoogleTest 的小示例 C++11 项目,它仅依赖于打包的 CMake 功能(主要是

ExternalProject
模块,并且可以在 CLion 和 *nix 命令行内部工作。

此版本显示“供应商”依赖项,如果需要,可以驻留在项目之外。所有依赖项构建的源代码和构建工件都包含在项目中,不会污染构建主机。然而,

ExternalProject
模块相当容易调整以从远程存储库下载特定版本。

如果自述文件中需要澄清某些内容,请告诉我。


0
投票

除了 @victor-mwenda 解决方案之外,还应将 google-test 克隆到项目目录中

© www.soinside.com 2019 - 2024. All rights reserved.