Release v1.14.0 · google/googletest (github.com),在官网下载Googletest1.14.0(Release版本,本博客默认你已经安装好了CMake)。
将下载好的压缩包解压到你的文件夹。
打开对应的文件夹。
开启控制台窗口,依次输入以下命令
mkdir build
cd build
cmake ..
进入到build项目中,用VS2022打开图中的.sln文件。
先将VS2022的模式切换成Release版本
右击项目文件夹,点击生成解决方案。
再切换成Debug模式重复一遍上面的操作
回到build文件夹发现多出了lib文件夹
进入到lib文件夹,发现了刚刚在VS2022里面Debug模式和Release模式下生成的文件。
检查以上文件是否缺失(如果缺失就删除build文件夹,重新来一遍上面的操作) 。
打开VS2022在任意文件夹下创建一个新的控制台项目。
将VS2022的模式改成Release。
设置好包含目录和库目录,点击应用。
将下面四个静态库文件的名称复制到链接器输入中的附加依赖库里,点击应用。
gmock.lib
gmock_main.lib
gtest.lib
gtest_main.lib
把下面这段代码复制到.cpp文件中。
#include <gtest/gtest.h>
// 定义一个测试类
class MyTestSuite : public ::testing::Test {
protected:
// 在测试套件之前的设置
static void SetUpTestSuite() {
// 进行一些初始化操作
}
// 在测试套件之后的清理
static void TearDownTestSuite() {
// 进行一些清理操作
}
// 在每个测试用例之前的设置
void SetUp() override {
// 进行一些初始化操作
}
// 在每个测试用例之后的清理
void TearDown() override {
// 进行一些清理操作
}
};
// 定义一个测试用例
TEST_F(MyTestSuite, TestCase1) {
// 进行测试断言
ASSERT_EQ(2 + 2, 4);
}
TEST_F(MyTestSuite, TestCase2) {
// 进行测试断言
ASSERT_TRUE(5 > 3);
}
// 主函数
int main(int argc, char** argv) {
// 初始化gtest
::testing::InitGoogleTest(&argc, argv);
// 运行所有的测试用例
return RUN_ALL_TESTS();
}
运行项目发现报错了。
根据错误信息,我们遇到了运行时库的不匹配问题。错误指出我们的项目和gtest库使用了不同的运行时库。解决此问题的方法是确保项目和gtest库都使用相同的运行时库,进入到这个界面。
在“运行时库”选项中,确保项目和gtest库都使用相同的运行时库。如果gtest库是作为静态库构建的,则应选择“多线程(/MT)”选项;如果gtest库是作为动态库构建的,则应选择“多线程调试DLL(/MDd)”或“多线程DLL(/MD)”选项,我们用的是.lib文件所以是静态库构建的,要选用/MT。
再次运行,成功运行,至此配置googletest结束。