在 CLion 中设置 Google 测试
Setup Google test in CLion
我已经在网上坐了几个小时,试图在 Linux 中对 Clion 设置 Google 测试,但一直找不到任何东西。
有人可以指导我进行设置吗?
新建项目
- 在我的 ClionProjects 文件夹中创建一个存储库
cd ~/ClionProjects
mkdir .repo
cd .repo
- 从 github 克隆 DownloadProject
git clone https://github.com/Crascit/DownloadProject.git
- 创建一个带有 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)
[我们编译一个库,以便我们可以将它包含在测试项目中]
test/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.
test/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
文件。
Here is a small example C++11 project which uses GoogleTest which only relies on packaged CMake features (mainly the ExternalProject
module 并在 CLion 和 *nix 命令行中工作。
此版本显示 "vendored" 依赖项,如果需要,它们可以驻留在项目之外。所有依赖构建的源代码和构建工件都包含在项目中,不会污染构建主机。然而,ExternalProject
模块很容易调整以从远程仓库下载特定版本。
让我知道自述文件中是否需要说明。
1.Git 克隆 google-test C++ 测试框架
From https://github.com/google/googletest.git
2.Include google-测试目录
#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。 Link 带有 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)
我已经在网上坐了几个小时,试图在 Linux 中对 Clion 设置 Google 测试,但一直找不到任何东西。
有人可以指导我进行设置吗?
新建项目
- 在我的 ClionProjects 文件夹中创建一个存储库
cd ~/ClionProjects
mkdir .repo
cd .repo
- 从 github 克隆 DownloadProject
git clone https://github.com/Crascit/DownloadProject.git
- 创建一个带有 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)
[我们编译一个库,以便我们可以将它包含在测试项目中]
test/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.
test/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
文件。
Here is a small example C++11 project which uses GoogleTest which only relies on packaged CMake features (mainly the ExternalProject
module 并在 CLion 和 *nix 命令行中工作。
此版本显示 "vendored" 依赖项,如果需要,它们可以驻留在项目之外。所有依赖构建的源代码和构建工件都包含在项目中,不会污染构建主机。然而,ExternalProject
模块很容易调整以从远程仓库下载特定版本。
让我知道自述文件中是否需要说明。
1.Git 克隆 google-test C++ 测试框架
From https://github.com/google/googletest.git
2.Include google-测试目录
#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。 Link 带有 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)