最近开始着手复习数据结构这门课程。
在写完了顺序表的代码后,突发奇想,觉得在 main 函数中写一些测试用例来看代码是否有误这种行为也太捞了,借助一些测试框架不是如鱼得水,还能学习新的知识,于是就打算使用 googletest 来对这些代码做测试(专业嘿嘿)。
踩坑开始
(不喜欢可以直接跳过)在网上看了一些教程后,我直接到 github 上下载这个项目,然后在 clion 中进行编译,没有报错,暗自窃喜
然后我把编译好的 gtestd.lib 复制到我所写的数据结构代码的项目中,目录结构如下:
在进行编译时报错
在网上搜索了一些资料,由上图报错路径我们可以知道 Clion 在编译时,使用的是 14.15.26726 的 MSVC 编译器,所以把 gtestd.lib 拷贝到该版本 MSVC 编译器下的 X86 目录中:
成功解决!然后点击编译后,新坑又来了:
MTd 和 MDd 不匹配,博主用 VS 时间比较长,此编译选项可以去 VS 的项目属性 -> C/C++ -> 代码生成 -> 运行库处修改,但是当我用 VS 打开 googletest 时,VS 并不能识别出该项目,所以就去另寻他法了。
正确方法
Clion 的官网中有一篇文章,介绍如何在 Clion 中使用 googletest:https://www.jetbrains.com/help/clion/creating-google-test-run-debug-configuration-for-test.html
文章写的感觉拐弯抹角,并不是很清晰,当然我照着配置了一遍是可以运行的(长舒一口气)。
我又尝试了几次,摸清楚其中的目录的组织结构。
比如现在我本地已经有创建好的 Clion 项目,我想在其中引入 googletest。可以直接在项目中创建个文件夹 lib
把下载好的 googletest 源码直接解压在 lib 目录中
然后在 Clion 中打开此项目,我们在 CMakeLists.txt 中加入一些语句,就可以使用 googletest 啦。举个例子,我们就拿 main.cpp 做一下测试,我的配置如下:
在 main.cpp 中加入以下代码:
1 |
|
点击运行就可以啦:
最后,表达一下悲愤的心情,真的折腾了好久(一个晚上 + 一个上午)
(也不知道为什么 hexo 无法识别 img 标签,所以图片也没法缩放或者横向排列,不想折腾了)