gtest单元测试配置+vs 2015+OpenCppCoverage输出测试覆盖率 |
您所在的位置:网站首页 › vs测试输出 › gtest单元测试配置+vs 2015+OpenCppCoverage输出测试覆盖率 |
目录 一、仅使用gtest+vs2015 1.下载和编译gtest 2.创建具体的项目 3.gtest自带十个例子 二、使用gtest+vs2015,并且输出测试覆盖率 1.使用vs 2015企业版 2.使用OpenCppCoverage +vs 2015(企业版,社区版都可以) 三、使用cmake生成项目,构建+gtest进行单元测试+使用命令行执行opencppcoverage输出测试覆盖率 1.基本的构建和介绍,请看下面这篇文章 2.构建引入gtest的项目 3.使用opencppcoverage输出测试覆盖率 补充 Cmakelists配置多级目录的gtest项目(项目代码和测试代码分离)
前言 首先,关于c++的单元测试的方法偏少(相比java) 其次,在windows环境下的部署方法更少 最后,如果还要输出测试覆盖率,搜索之后发现,几乎没有教程,有也是零星几句,也没有更详细的配置 因此,走过一遍之后打算记录一下过程,方便以后配置也方便有这方面需求的人的查看 声明,文章中涉及到的工具用的是vs2015 enterprise/community+gtest-release-1.7.0+Opencppcoverage+cmake 如何搭配使用见文章详情 一、仅使用gtest+vs2015 1.下载和编译gtest 首先下载vs 2015,网上有社区版(免费)+企业版(收费/破解) 如果只需要vs+gtest,并且不使用cmake命令,而且不需要覆盖率用的话,社区版就够了,如果需求不满足前面的条件,就去下载企业版enterprise我没放c盘,因为太大了,动不动就10g了 接着下载gtesthttps://github.com/google/googletest/tree/release-1.7.0 下载这个版本就够了,解压之后要进行编译 Gtest源码下载之后,在vs中打开msvc文件夹的gtest.sln 打开之后有4个工程 然后重新编译,debug、release两个模式都要编译。编译后,在msvc/gtest/下有debug、release两个文件夹。 msvc\gtest\Debug - Debug方案下的二进制文件:gtestd.lib、gtest_maind.lib(注意主文件名的d后缀) msvc\gtest\Release - Release方案下的二进制文件:gtest.lib、gtest_main.lib 说明 编译就是右键-生成/重新生成 2.创建具体的项目创建具体的测试项目,以debug模式为例 在VS2015中,创建WIN32控制台应用右击工程名,点击“属性”,配置工程属性; 展开“配置属性——C/C++——常规”,在“附加包含目录”中添加gtest的include文件比如: D:\Test-my\googletest-release-1.7.0\googletest-release-1.7.0\include;
3.展开“C/C++——代码生成”,在“运行库”中修改为“多线程调试(/MTd)”
4.展开“链接器——输入”,在“附加依赖项”中添加第二步生成的gtestd.lib,附加上正确的路径;在这里有个小技巧,.lib是静态库文件,你可以把它们放到一个专门的lib文件夹下 比如 D:\Test-my\googletest-release-1.7.0\googletest-release-1.7.0\lib\gtestd.lib; 5.测试实例 头文件源文件
说明,具体语法的断言写法,网上到处都有。主要是配置过程很容易出错。 如果没有main函数,会调用gtest_main.cc ,配置好gtest_maind.lib https://www.cnblogs.com/qinwanlin/p/6574573.html 3.gtest自带十个例子但是需要编译,因为他没有lsn文件是不能打开执行的 但是这个网上有教程,我就不赘述了 附上链接
https://www.cnblogs.com/duxiuxing/p/4272343.html 如何编译gtest自带的十个samples例子,当然不能放在同一个项目里,有些可以放在一个项目里有些不能。我编译的时候分成了两个或者三个项目,一个是自带main函数不需要配置gtest_main,一个是没有main函数,需要配置,放在一起回出错。 并且要注意引入的头文件。
https://blog.csdn.net/yansmile1/article/details/70256911 gtest的samples的解释说明 二、使用gtest+vs2015,并且输出测试覆盖率 1.使用vs 2015企业版 因为企业版功能是比较完善的 所以如果下载的是企业版的话,可以构建项目+测试项目,企业版会展示出你写的所有测试类,并且执行之后会告诉你通过情况,并且给出覆盖率情况 这个需要先新建一个项目(我是控制台32项目),也需要下载一个插件Unit Test Generator先给出官网给的说明 https://docs.microsoft.com/zh-cn/visualstudio/test/using-code-coverage-to-determine-how-much-code-is-being-tested?view=vs-2015再给出已经有人写的教程,可能有的是c#,有的是c++,但操作是一样的,选择对应的语言就可以,我觉得他已经写得非常详细了,我就是参考这样配置的 https://www.cnblogs.com/tonyztx/p/5297959.html编译之后,点击测试-运行-测试项目 然后测试-分析代码覆盖率
2.使用OpenCppCoverage +vs 2015(企业版,社区版都可以) 下面这篇文章虽然介绍的很简单,但是至少提供了方向 https://blog.csdn.net/quiet_girl/article/details/78075070如果不使用命令行的话,第二种做法就够了,直接通过插件安装
然后选择工具,run opencpp就可以了 出现红色绿色的阴影 红色是未覆盖,绿色是覆盖 三、使用cmake生成项目,构建+gtest进行单元测试+使用命令行执行opencppcoverage输出测试覆盖率
CMake是一个工程构建工具,能够自动生产makefile文件,方便构建编译文件,链接库,安装文件等。 每个需要编译的目录(子目录)都要有一个CMakeLists.txt文件 1.基本的构建和介绍,请看下面这篇文章https://blog.csdn.net/yaoyuanyylyy/article/details/79024962 上面介绍了怎么使用cmake构建一个项目并且执行 2.构建引入gtest的项目下面这篇文章简单的介绍了,但执行过程出现各种问题 http://www.sohu.com/a/251930931_216613 下面详细介绍我的实现步骤 首先建两个文件(仅供参考) ![]() 文件内容如下 test.cpp #include #include #include using namespace std; class TestMap :public testing::Test { public: //添加日志 static void SetUpTestCase() { cout |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |