Visual Studio 2022 安装并使用 Google Test

A:方便快捷安装GoogleTest

1.打开你需要进行单元测试的项目,右键项目
在这里插入图片描述


2.选择管理NuGet程序包(Manage Nuget Packages)

在这里插入图片描述


3.在管理器界面中,选择浏览(browse) 搜索Google Test,找到后点击安装(install)
在这里插入图片描述


B:配置Lib路径与生成命令行

Lib 路径:$(SolutionDir)\packages\googletest.1.8.3\build\native\lib\$(PlatformTarget)\v141\$(Configuration)\
里面有宏,理论上会通用所有人,可根据自己当前情况修改
在这里插入图片描述


b:使用命令行,复制不同目录下,对应版本的DLL到工作目录,并删除此前有版本差异的DLL
工作目录默认为$(ProjectDir)

生成前事件

del "$(ProjectDir)googletest_v141.dll"

在这里插入图片描述

生成后事件

xcopy /y /d "$(SolutionDir)packages\googletest.redist.1.8.3\build\native\bin\$(PlatformTarget)\v141\$(Configuration)\googletest_v141.dll" "$(ProjectDir)"

里面有宏,理论上会通用所有人,可根据自己当前情况修改

在这里插入图片描述


C:Google Test

GTest Doc: https://google.github.io/googletest/

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


例 // 按照上面进行配置,该代码可以直接运行(C++20)

#include <iostream>

#define GTEST_LANG_CXX11 1

#pragma comment(lib, "googletest_v141.lib")

#include "gtest/gtest.h"

auto Add(auto a, auto b) -> decltype(a + b)
{
    return a + b;
}

TEST(AddTest, Float)
{
    EXPECT_EQ(Add(1.f, 2.f), 3.f);
    EXPECT_EQ(Add(3.f, 2.f), 5.f);
}

TEST(AddTest, Int)
{
    EXPECT_EQ(Add(1, 2), 3);
    EXPECT_EQ(Add(3, 2), 5);
}

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

    std::cout << "Hello,World!" << std::endl;

    return RUN_ALL_TESTS();
}

D:可能遭遇的问题

Nuget管理器无法搜索到Google Test

在这里插入图片描述
原因:Nuget包源仅有本地目录
解决方案:选项->Nuget包管理器->包源->添加->https://api.nuget.org/v3/index.jsonhttps://nuget.cdn.azure.cn/v3/index.json
两者同时添加也可以

在这里插入图片描述
设置完毕后,重新打开Nuget管理器,将包源调整为全部或非本地源
在这里插入图片描述


Google Test 文件生成失败

在这里插入图片描述
原因:Google Test 对编译器的C++标准仅支持抽象检测,有几率无法确定当前编译器是否支持C++11
解决方案:#include “gtest.h” 前加上 #define GTEST_LANG_CXX11 1


应用程序错误-无法正常启动,请单击"确定"关闭应用程序

在这里插入图片描述
原因:没有成功清理,复制相应版本DLL
解决方法:重新生成 或者手动到工作目录中删除 googletest_v141.dll

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

八宝咸鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值