在visual Studio中引入Google Test进行单元测试
因为工作,需要对函数进行单元测试。
根据需求选定了Google Test框架进行,单元测试。
开始时根据网上的教程 需要git Google Test的库。
后面发现visual Studio本身就有Google Test。
创建过程如下
首先点击工具,获取工具和功能

跳出的界面里点击使用C++的桌面开发,选择Google Test测试适配器

确定visual Studio安装了Google Test测试适配器,如果没有,安装。
点击新建,项目

搜索框里键入GOO第一个就是Google Test

点击下一步跳出

名为“Test Project Configuration”,用于配置Google Test和C++运行时库的使用方式。具体选项包括:
-
使用Google Test的方式:
-
静态库 (.lib)
-
动态库 (.dll)
-
-
C++运行时库:
-
动态链接(推荐)
-
静态链接
- 静态库 (.lib):如果希望简化部署并且减少运行时的依赖,可以选择静态库。这样所有的代码会被编译进最终的可执行文件。
-
动态库 (.dll):如果希望节省内存使用,并且允许更新单个库文件而不需要重新编译整个项目,可以选择动态库。
-
-
C++运行时库:
-
动态链接(推荐):通常推荐使用动态链接,这样可以共享C++运行时库,节省内存和减少可执行文件大小。静态链接:如果希望避免运行时依赖,确保所有必要的库都在一个可执行文件中,可以选择静态链接
-
-
这里我默认选择了静态库,和动态链接
系统会创建如下项目

这里点击开始调试,或者开始执行

如果弹出如下图,说明引入成功

接下来,尝试测试一下如下代码
int addint(int a, int b) {
return a + b;
}
float addfloat(float a, float b) {
return a + b;
}
在pch.cpp中实现函数
在pch.h中声明函数

在test.cpp中写测试的宏

#include "pch.h"
TEST(TestCaseName, TestName) {
EXPECT_EQ(1, 1);
EXPECT_TRUE(true);
}
// addint 测试用例
TEST(AddINT, HandlesPositiveInput) {
EXPECT_EQ(addint(1, 1), 2);
EXPECT_EQ(addint(2, 3), 5);
}
// addfloat 测试用例
TEST(AddFloatTest, HandlesPositiveInput) {
EXPECT_FLOAT_EQ(addfloat(1.5, 1.5), 3.0);
EXPECT_FLOAT_EQ(addfloat(2.0, 3.5), 5.5);
}
// 主函数运行所有的测试
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv); // 初始化Google Test框架
int result = RUN_ALL_TESTS();
}
TEST(TestCaseName, TestName):
-
作用:定义一个测试用例。
-
参数:
TestCaseName是测试套件的名称,TestName是具体测试的名称。
EXPECT_EQ(val1, val2):
-
作用:断言
val1和val2相等。如果不相等,测试将失败。
EXPECT_FLOAT_EQ(val1, val2):
-
作用:断言两个浮点数
val1和val2相等,允许小范围误差。如果不相等,测试将失败。
EXPECT_TRUE(condition):
-
作用:断言
condition为真。如果condition为假,测试将失败。
::testing::InitGoogleTest(&argc, argv):
-
作用:初始化Google Test框架,解析命令行参数,配置Google Test。
RUN_ALL_TESTS():
-
作用:运行所有定义的测试用例,返回测试结果。
运行后结果如下

基本上就是这些,Google Test还有别的内置的宏和函数。
不过到时候用的时候,再查询使用。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)