草庐IT

cmake应用:集成gtest进行单元测试

编写代码有bug是很正常的,通过编写完备的单元测试,可以及时发现问题,并且在后续的代码改进中持续观测是否引入了新的bug。对于追求质量的程序员,为自己的代码编写全面的单元测试是必备的基础技能,在编写单元测试的时候也能复盘自己的代码设计,是提高代码质量极为有效的手段。在本系列前序的文章中已经介绍了CMake很多内容,本文是针对单元测试的外延。  本文主要介绍以下几个方面的内容:  1、何为单元测试  2、何为gtest  3、怎么使用gtest  4、怎么运行测试一、单元测试是什么?  单元测试(UnitTesting),一般指对软件中的最小可测试单元进行检查和验证。最小可测试单元可以是指一个函

玩转Google开源C++单元测试框架Google Test系列(gtest)之六 - 运行参数

目录一、前言二、基本介绍三、参数列表四、XML报告输出格式五、总结一、前言使用gtest编写的测试案例通常本身就是一个可执行文件,因此运行起来非常方便。同时,gtest也为我们提供了一系列的运行参数(环境变量、命令行参数或代码里指定),使得我们可以对案例的执行进行一些有效的控制。二、基本介绍前面提到,对于运行参数,gtest提供了三种设置的途径:1.系统环境变量2.命令行参数3.代码中指定FLAG因为提供了三种途径,就会有优先级的问题,有一个原则是,最后设置的那个会生效。不过总结一下,通常情况下,比较理想的优先级为:命令行参数>代码中指定FLAG>系统环境变量为什么我们编写的测试案例能够处理这

android - 纠结谷歌测试

我无法启动并运行Google测试。我已阅读建议的steps来自Google,我还查看了以前的post,并阅读其他一些examples,但它并没有解决很多问题。为简单起见,我正在尝试Google测试中建议的示例,该示例可从Androidndk的目录-sample1中获得://main.cpp#include#include"qtquick2applicationviewer.h"#include"gtest/gtest.h"intmain(intargc,char*argv[]){QGuiApplicationapp(argc,argv);testing::InitGoogleTest(

使用 Bazel 和 GTest 的 C++ 项目

我想用gtest创建一个BazelC++项目来进行单元测试。什么是最小设置?(我的电脑上只安装了Bazel,而且我在Linux下运行) 最佳答案 现在googletest提供了一个BUILD文件,这就更容易了:在WORKSPACEload("@bazel_tools//tools/build_defs/repo:git.bzl","git_repository")git_repository(name="gtest",remote="https://github.com/google/googletest",branch="v1.1

C++单元测试GoogleTest和GoogleMock十分钟快速上手(gtest&gmock)

C++单元测试GoogleTest和GoogleMock(gtest&gmock)环境准备下载gitclonehttps://github.com/google/googletest.git#或者wgethttps://github.com/google/googletest/releases/tag/release-1.11.0安装cdgoogletestcmakeCMakeLists.txtmakesudomakeinstall重要文件googletestgtest/gtest.hlibgtest.alibgtest_main.a当不想写main函数的时候,可以直接引入libgtest_m

google gtest框架入门使用案例

通过本文可以收获:googlegtest急速入门、googlegtest资源网站。googlegtest是什么googlegtest是谷歌开源的c++单元测试框架,非常的好用。起码个人感觉和springboot自带的测试框架功能差不太多。安装略过,请参考:GitHub-google/googletest:GoogleTest-GoogleTestingandMockingFramework或网上资料使用案例分析本文重点。目前版本样例位于:googletest/googletest/samplesatmain·google/googletest中。断言与springboot的测试框架类似,gte

Bazel Java_tools构建的GTEST依赖性?

我试图在此处遵循贡献者的说明:https://bazel.build/contributing.html我已经成功地构建了主人(即BazelBuild//SRC:Bazel),但DOC建议还建议“您可能想构建Bazel用途的各种工具”。我正在尝试这样做,例如:cdsrc/java_tools/singlejarbazelbuild//...但是它失败了:ERROR:/Users/.../bazel/third_party/protobuf/3.2.0/BUILD:621:1:nosuchtarget'//external:gtest':target'gtest'notdeclaredinpac

在Matcher中使用GTEST FLOAT比较

我喜欢编写一个具有一些浮点值的结构的匹配器:structPoint3D{floatx;floaty;floatz;}classInterface{virtualvoidSetPoint(Point3Dpoint)=0;}classMockInterface:publicInterface{MOCK_METHOD1(SetPoint,void(Point3Dpoint));}MATCHER_P(Point3DEq,point,"ComparisonofaPoint3D"){returnpoint.x==arg.x&&point.y==arg.y&&point.z==arg.z;}TEST(Poi

Gtest输出单元测试报告和输出覆盖率报告

文章目录1.要求2.生成gtest测试报告3.生成gtest覆盖率报告1.要求编译工具:选择Cmake,单元测试使用Gtest2.生成gtest测试报告gtest本身仅能输出xml或者json格式的测试报告,所以采用gtest2html地三方工具输出html的报告环境:gtest已经可以使用(1)clonegtest2htmlgitclonehttps://github.com/adarmalik/gtest2html.git(2)运行./unitest_program--gtest_output="xml:output.xml"xsltproc${WORKSPACE}/gtest2html.

CLion中配置gtest

环境:Windows,cmake,gcc,g++,CLion一、下载源码二、解压并构建(我是怎么知道的?)进入处于解压目录的cmd窗口输入以下命令cmake以下使用以下命令构建100%即构建成功找到这些东西,复制到CLion项目中,文件结构在后面我这里是先创建一个gtest目录,在gtest目录下在创建一个lib目录,把libgtest.a和libgtest_main.a放进去把源码googletest目录下的inlclude复制到第一个gtest目录下(使include与lib目录同级)文件结构│CMakeLists.txt├─.idea├─gtest│├─gtest│││gtest-ass