文章目录
环境的配置
Google Mock 和 Google Test环境配置
方法1:从源代码构建
第一步:克隆库的源代码
你可以使用
git
来克隆 gTest 和 gMock 的代码:
git clone https://github.com/google/googletest.git
第二步:构建库
- 进入
googletest
目录:cd googletest
- 创建构建目录并构建:
mkdir buildcd buildcmake ..make
- 安装:如果你希望将库安装到系统目录,可以使用:
sudomakeinstall
要安装 Google Mock(gMock)和 Google Test(gTest)库,你可以通过几种方法进行,下面将介绍常用的两种方法:使用包管理器和从源代码构建。
方法 2:使用 CMake 的
FetchContent
如果不想手动安装库,可以在 CMake 项目的
CMakeLists.txt
中使用
FetchContent
来自动下载并构建 gTest 和 gMock。
示例 CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(MyGMockProject)
set(CMAKE_CXX_STANDARD 11)
include(FetchContent)
# Fetch GoogleTest
FetchContent_Declare(
googletest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG release-1.11.0 # 选择合适的版本
)
FetchContent_MakeAvailable(googletest)
# 添加源文件
set(SOURCE_FILES main.cpp MyClass.cpp)
set(TEST_FILES MyClassTest.cpp)
# 创建可执行文件
add_executable(MyExecutable ${SOURCE_FILES})
# 创建测试可执行文件
add_executable(MyTests ${TEST_FILES})
# 链接 gMock 和 gTest
target_link_libraries(MyTests gmock gtest gmock_main gtest_main)
项目的创建
在 Visual Studio Code (VSCode) 中使用 Google Mock 和 Google Test 的完整流程如下:
项目结构
创建一个新的文件夹。然后在该文件夹中创建以下结构:
MyGTestProject/
├── CMakeLists.txt
├── main.cpp
└── tests/
├── CMakeLists.txt
└── MyClassTest.cpp
CMakeLists.txt (根目录)
在
MyGTestProject/CMakeLists.txt
中添加以下内容:
使用方法二配置环境
cmake_minimum_required(VERSION 3.10)
project(MyGTestProject)
set(CMAKE_CXX_STANDARD 11)
# Fetch Google Test
include(FetchContent)
FetchContent_Declare(
googletest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG release-1.11.0 # 最后用于 1.11.0,或选择任意合适版本
)
FetchContent_MakeAvailable(googletest)
# 添加主程序文件
add_executable(MyExecutable main.cpp)
# 添加测试子目录
add_subdirectory(tests)
main.cpp (示例程序)
在
MyGTestProject/main.cpp
中添加以下代码:
#include<iostream>intmain(){
std::cout <<"Hello, Google Test!"<< std::endl;return0;}
tests/CMakeLists.txt (测试部分)
在
MyGTestProject/tests/CMakeLists.txt
中添加以下内容:
# 添加测试源文件
set(TEST_FILES MyClassTest.cpp)
# 创建测试可执行文件
add_executable(MyTests ${TEST_FILES})
# 链接 GTest 和 GMock
target_link_libraries(MyTests gmock gtest gmock_main gtest_main)
# 启用测试
enable_testing()
add_test(NAME MyTests COMMAND MyTests)
tests/MyClassTest.cpp (示例测试)
在
MyGTestProject/tests/MyClassTest.cpp
中添加以下测试代码:
#include<gmock/gmock.h>#include<gtest/gtest.h>TEST(SampleTest, SampleAssertion){ASSERT_EQ(1+1,2);}
终端命令
命令:
cd MyGTestProject
mkdir build
cd build
cmake ..make# 运行可执行文件
./MyExecutable
# 运行测试可执行文件
./tests/MyTests
添加一个测试用例
在源码中修改:
#include<gmock/gmock.h>#include<gtest/gtest.h>TEST(SampleTest, SampleAssertion){ASSERT_EQ(1+1,2);}TEST(SampleTest, SampleAssertion1){ASSERT_EQ(1+1,2);}
注意
TEST
中两个参数不能全部都相同,会报错。
TEST()
参数从一般到具体。
第一个参数是测试套件(test suite)的名称;
第二个参数是测试套件(test suite)中的测试名称;
这两个名称都必须是有效的C++标识符,并且不应包含任何下划线(_)。
测试的全名由其包含的测试套件及其测试名称组成。来自不同的测试套件的测试可以具有相同的测试名称。
运行结果:
注意事项
- 确保编译器和 CMake 版本兼容。
- 如果遇到问题,可以查看 VSCode 的输出窗口,了解 CMake 和构建的详细信息。
- 可以添加更多的测试文件,只需在
tests/CMakeLists.txt
中添加这些文件的名称。
版权归原作者 sutneucoder 所有, 如有侵权,请联系我们删除。