`
zcmit
  • 浏览: 17772 次
文章分类
社区版块
存档分类
最新评论

搭建GTest框架、出现问题、解决方案

 
阅读更多
今天开始自己动手一步一步搭建在vs2010中使用GTest的框架
1、首先从https://code.google.com/p/googletest/下载最新版,写此篇文章时使用的是1.6.0
2、在解压后目录中找到msvc目录,其中有两个sln:gtest.sln、gtest-md.sln,打开前者发现有4个工程:
gtest是主工程、gtest_main是帮助被测工程生成main入口的、其余两个是测试工程不关注
3、对于前两个工程,分别生成debug和release的lib,注意:在工程属性-配置属性-C/C++-代码生成中将运行库改为“多线程调试(/MTD)”和“多线程(/MT)”,分别对应debug和release版本
4、第3步会在msvc目录中得到gtest目录,其中有debug和release目录,此两个目录中分别会有gtest.lib和gtest_main.lib,这两个lib就是我们将要使用的单元测试链接库了
5、现在可以开始搭建GTest框架在你的项目中了
6、在vs2010中将你自己的被测工程的配置类型改为静态链接(.lib),同时在工程属性-配置属性-C/C++-代码生成中将运行库改为“多线程调试(/MTD)”和“多线程(/MT)”,这就对应上了我们在第3步中生成的两个lib了,此处一定要和第三步的选择相同,否则无法使用gtest!
7、现在终于可以建立你自己的测试工程了,一般建议对于一个生产工程我们都生成一个相应的测试工程,便于管理和解耦
8、此时开始了“痛苦的”属性设置过程,我自己在网上找了N久都没有解决,最后还是在github上的一个项目源码中一点点的照着改才终于改对,后来自己把犯过的错误又回顾了一遍,终于算是比较清楚这每一步的设置都是怎么回事了。废话少说,我们开始:
8.1、新建一个测试工程
8.2、为新建的测试工程添加依赖项目,右键-“项目依赖项”,选中被测项目,你可以不设置此项,按照8.6同样可以完成,这一步就是让你的测试工程能认识被测试工程
8.3、将测试工程的包含目录设置为gtest-1.6.0\include
8.4、在工程属性-配置属性-C/C++-代码生成中将运行库改为“多线程调试(/MTD)”和“多线程(/MT)”,同样是第3步的设置,一脉相承,前后呼应!
8.5、属性-配置属性-连接器-输入,在附加依赖项中添加你在第3步生成的两个lib,其中如果你的测试项目有main函数入口可以不加gtest_main.lib,如果你的测试工程没有main函数入口,则需要加gtest_main.lib,它可以帮你生成入口函数
8.6、如果你没有设置8.2,此时你必须这样做,同样在8.5的窗口中再增加一个被测工程的lib(当然这需要你先build该工程为一个静态链接库)。我之前就在这里卡住了很久因为我的8.2设置无效!!!找了半天才发现这个原因,但是原理很简单就是让你的测试工程知道你的被测工程,找到lib就好了
8.7、最后一步,在你的测试代码中include被测代码的头文件和gtest/gtest.h
9、完成以上配置,就可以安心写你的测试用例了
10、如果完成了以上9步,可以运行成功,你就能看到gtest的运行界面了

总结,自己找了一些论坛上网友的帖子,基本都介绍清楚了gtest的搭建,但是我并没有按照他们任何一个人说的搭建成功,
所以后来自己弄清楚了之后,还是想自己在完善一下再贴出来,以飨读者。

版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics