0


记录VS2019配置动态链接库项目的单元测试Google test

目录

环境

Visual Studio 2019
C/C++
Google Test

概述

在Visual Studio中,单元测试项目会随着安装各种不同的语言环境默认安装,比如安装了.net 开发环境时会安装NUnit MSTest等测试框架。我的环境里有本机单元测试项目,Google Test,因为较熟悉Google Test,本文以其为例介绍如何针对VS项目做Gtest单元测试。
在这里插入图片描述

步骤

在这里插入图片描述

创建被测项目、测试项目

  1. 首先创建了一个空解决方案CppUnittestForP1546.sln,然后在空解决方案下建立一个基于C++的空项目“ProP1546”,正常开发这个项目。
  2. 在同一个解决方案下,创建单元测试项目GTestForP1546: 鼠标点选解决方案右键->添加->新建项目,我们在项目模板搜索栏中输入Test/测试,或者点选测试,会出现前面概述里的界面,选择Google Test,创建一个单元测试项目即可。

配置被测项目、测试项目

接下来就是项目配置:

配置测试目标项目ProP1546,生成动态链接库

(1) 将ProP1546项目的配置类型变更为动态库 .dll 或静态库 .lib,这里我选择的是动态库(.dll):

ProP1546项目右键->属性->常规->配置类型->动态库(.dll)

(2) 将ProP1546项目的输出目录修改为ProjectDir(默认设置是SolutionDir)

ProP1546项目右键->属性->常规->输出目录,将SolutionDir替换为ProjectDir

——这样的话,生成的dll、lib的位置就在项目所在路径下,当然可以根据实际情况更改这个位置。
在这里插入图片描述
(3) 动态链接库导出函数的一些宏定义可以通过下面的方式设置:

项目属性 -> C/C++ -> 预处理器 -> 预处理器定义;

注意:_CRT_SECURE_NO_WARNINGS 为了 禁止显示状态错误C4996,更多详情可参考后文的“附加说明”。
在这里插入图片描述

配置单元测试项目GTestForP1546

(1) 将测试目标项目ProP1546添加至单元测试项目GTestForP1546引用中:

选中单元测试项目下的“引用”节点右键->添加引用->选择测试目标项目点击确定.

在这里插入图片描述
(2) 将测试目标项目ProP1546中公开的头文件所在目录,添加至单元测试项目GTestForP1546的附加包含目录:

选中单元测试项目GTestForP1546右键->C/C++->常规->附加包含目录->编辑
点击添加目录按钮,选择测试目标目录ProP1546的头文件所在目录。

在这里插入图片描述

(3) 将测试目标项目ProP1546的.lib 或 .dll 文件的输出目录,添加至单元测试项目GTestForP1546的附加库目录,并添加.lib文件名至附加依赖库。
a. 添加附加库目录

单元测试项目GTestForP1546右键属性->链接器->常规->附加库目录

将lib文件的输出目录添加到列表中
在这里插入图片描述

b. 添加库文件至附加依赖库

单元测试项目GTestForP1546右键属性->链接器->输入->附加依赖库

在随后打开的文本框中输入.lib(目标测试项目输出的lib文件名。)
在这里插入图片描述
最后要保证两个项目的配置和平台一致:
在这里插入图片描述

单元测试用例执行情况:
在这里插入图片描述

附加说明

关于禁止显示状态错误C4996

可参见:
严重性代码说明项目文件行 禁止显示状态错误C4996 ‘scanf‘: This function or variable may be unsafe.最全解决方法

关于找不到某个dll,解决方法

在项目属性页的“配置属性”->“调试”->“环境” 中编辑,把环境路径设置为dll的文件路径即可,注意末尾分号要用半角的。
在这里插入图片描述
在这里插入图片描述

关于使用动态链接库提示链接错误

在这里插入图片描述
可以借助工具dumpbin查看DLL的导出函数:
在这里插入图片描述
在这里插入图片描述

参考

vs项目中 包含目录、库目录、附加包含目录,附加库目录和附加依赖项


本文转载自: https://blog.csdn.net/Sophia_Rao/article/details/128326727
版权归原作者 Sophia_Rao 所有, 如有侵权,请联系我们删除。

“记录VS2019配置动态链接库项目的单元测试Google test”的评论:

还没有评论