googletest

LaTeX备忘——使用listings宏包显示google test终端内容

六月ゝ 毕业季﹏ 提交于 2020-11-19 20:28:25
目前我使用的源代码显示宏包有minted与listings,前者功能更强大,但需要python方面的支持。最近需要在latex文档中插入Google Test的终端显示内容,minted虽然可以自定义语言,但需要使用python,我目前还未学习,故暂时只能使用listings宏包来实现。 操作系统:Ubuntu 20.04 编辑工具:TeXstudio 2.12.22 编译方式:LuaLaTeX 完整源代码如下: % 开源中国,陆巍的博客 \documentclass[oneside]{article}% % 注意宏包顺序,有可能会报错 \usepackage{ctex}% 中文支持 \usepackage{geometry}% 用于页面设置 \usepackage[dvipsnames, svgnames, x11names]{xcolor} % 颜色支持 \usepackage{graphics}% 图形支持 \usepackage[ colorlinks=true, linkcolor=Navy, urlcolor=Navy, citecolor=Navy, anchorcolor=Navy ]{hyperref} \usepackage{enumerate}% 枚举支持 \usepackage{tcolorbox}% 支持更好的文本框 \tcbuselibrary

(转)Google C++单元测试框架---Gtest框架简介(译文)

社会主义新天地 提交于 2020-10-04 03:59:07
一、设置一个新的测试项目 在用google test写测试项目之前,需要先编译gtest到library库并将测试与其链接。我们为一些流行的构建系统提供了构建文件: msvc/ for Visual Studio, xcode/ for Mac Xcode, make/ for GNU make, codegear/ for Borland C++ Builder. 如果你的构建系统不在这个名单上,在googletest根目录有autotools的脚本(不推荐使用)和 CMakeLists.txt CMake(推荐)。你可以看看make / Makefile来了解如何编译Google Test(基本上你想在头文件中使用GTEST_ROOT和GTEST_ROOT / include来编译src / gtest-all.cc路径,其中GTEST_ROOT是Google测试根目录)。 一旦你能够编译google test库,您应该为您的测试程序创建一个项目或构建目标。Make sure you have GTEST_ROOT/include in the header search path so that the compiler can find "gtest/gtest.h" when compiling your test.把google test库加到你的测试项目中(比如

编写优美的GTest测试案例

 ̄綄美尐妖づ 提交于 2020-08-19 05:33:08
使用gtest也有很长一段时间了,这期间也积累了一些经验,所以分享一下。GTest为我们提供了便捷的测试框架,让我们只需要关注案例本身。如何在GTest框架下写出优美的测试案例,我觉得必须要做到: 案例的层次结构一定要清晰 案例的检查点一定要明确 案例失败时一定要能精确的定位问题 案例执行结果一定要稳定 案例执行的时间一定不能太长 案例一定不能对测试环境造成破坏 案例一定独立,不能与其他案例有先后关系的依赖 案例的命名一定清晰,容易理解 案例的可维护性也是非常重要,如果做到上面的8点,自然也就做到了可维护性。下面来分享一下我对于上面8点的经验: 1. 案例的层次结构一定要清晰 所谓层次结构,至少要让人一眼就能分辨出被测代码和测试代码。简单的说,就是知道你在测什么。由于是进行接口测试,我已经习惯了如下的案例层次: DataDefine 我会将测试案例所需要的数据,以及数据之间的联系全部在预先定义好。测试数据与案例逻辑的分离,有利于维护和扩展测试案例。同时,GTest先天就支持测试数据参数化,为测试数据的分离提供了进一步的便捷。什么是测试数据参数化?就是你可以预先定义好一批各种各样的数据,而你只需要编写一个测试案例的逻辑代码,gtest会将定义好的数据逐个套入测试案例中进行执行。具体的做法请见: 玩转Google开源C++单元测试框架Google Test系列(gtest)之四 -

Wings-企业级单元测试自动编码引擎白皮书

◇◆丶佛笑我妖孽 提交于 2020-08-11 06:59:40
第一章 Wings企业级单元测试自动编码引擎诞生的背景 随着科技的飞速发展,软件系统越来越复杂,在系统测试阶段不断遇到的瓶颈,迫使行业逐步追根溯源到了单元测试阶段。软件缺陷发现得越晚,其处理费用就越呈几何激增,因此测试左移概念已经成为趋势。 单元测试面临的最大问题是单元测试用例编写工作量巨大,极端情况下与开发工作量比达到1:1,甚至更高,这使大部分开发团队要么主动忽视单元测试,要么象征性的走个流程。 如果可以让计算机先对被测试程序进行全局分析和深度理解,再由计算机进行全自动的完成单元测试编码,同时还能确保自动编写的代码无语法、语义错误的直接运行起来,这种用计算机智能算法全自动产生的测试编码去验证开发人员编写的源代码逻辑输入输出对错的高端测试模式,无疑是未来软件测试领域最为璀璨的“明珠”技术。 国外软件诸如c++ test完成了这个领域的初步技术探索,星云测试研发的Wings(目前商用产品支持c/c++程序)产品,则大踏步完成了整体技术跨越和多方商用落地验证。 Wings可以对程序参数进行深度解析,比如c++类、模板类、数组、结构体、指针、链表以及任意复杂结构的层级嵌套,同时对于面向对象的程序特性以及常用的容器库,能够完美识别和支持。对于一些void*、函数指针、模板类等无法直接静态分析进行类型确定的特殊情况,均有基于人工智能的程序分析辅助进行类型确定。

How to use gmock MOCK_METHOD for overloaded operators?

耗尽温柔 提交于 2020-07-20 07:26:22
问题 I am new to googlemock (and StackOverflow). I got a problem when using MOCK_METHODn in googlemock and I believe this function is widely used. Here is what I did. I have an abstract class Foo with virtual overloaded operator[] : class Foo{ public: virtual ~Foo(){}; virtual int operator [] (int index) = 0; } and I want to use googlemock to get a MockFoo : class MockFoo: public Foo{ public: MOCK_METHOD1(operator[], int(int index)); //The compiler indicates this line is incorrect } However, this

How to use GTest with CMake ? Linkage problem when following Google's guide

本秂侑毒 提交于 2020-07-07 11:40:57
问题 I started to use boost test for my project, but I need to mock static methods, so I try to switch to GTest and GMock. I followed the really clear guide from google, and the CMakeLists seems to be doing its job : CMakeLists.txt cmake_minimum_required(VERSION 3.15) project(POC_V4) set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED TRUE) # Specifying we are using pthread for UNIX systems. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TORCH_CXX_FLAGS} -pthread -Wall") find_package(OpenCV