首页 > 其他分享 >gtest入门

gtest入门

时间:2022-09-30 20:59:12浏览次数:75  
标签:入门 maingtest gtest base build test main

一、gtest简介

gtest是一个跨平台(Liunx、Mac OS X、Windows、Cygwin、Windows CE and Symbian)C++测试框架,有google公司发布。gtest测试框架是在不同平台上为编写C++测试而生成的。

gtest下载网站

https://github.com/google/googletest

二、gtest的编译

下载好gtest-1.7.0.zip之后解压

cd googletest
mkdir build
cmake -G Ninja  .. 
ninja

build/lib目录下生成libgtest.a和libgtest_main.a库

三、gtest使用

3.1、新建项目

(base) ➜  maingtest tree 
.
├── CMakeLists.txt
└── main.cpp

3.2、将gtest资源放到项目中

将项目中的build/lib文件夹和googletest/include文件夹

(base) ➜  maingtest tree 
.
├── CMakeLists.txt
├── include
│   └── gtest
│       ├── ...
│       ├── gtest.h
│       └── internal
│           ├── custom
│           │   ├── ...
│           │   └── gtest.h
│           ├── ...
│           └── gtest-type-util.h
├── lib
│   ├── libgtest.a
│   └── libgtest_main.a
└── main.cpp

首先修改CMakeLists.txt

cmake_minimum_required(VERSION 3.22)
project(maingtest)
set(CMAKE_CXX_STANDARD 14)
include_directories(include)
link_directories(lib)
add_executable(maingtest main.cpp)
target_link_libraries(
        maingtest
        libgtest.a
)

修改main.cpp

#include "gtest/gtest.h"
int add(int a,int b){
    return a+b;
}

TEST(fun, add){
EXPECT_EQ(1, add(2,-1));
}

int main(int argc, char** argv){
    testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}

在maingtest目录下

(base) ➜  maingtest mkdir build
(base) ➜  maingtest cd build
(base) ➜  build cmake -G Ninja  .. 
-- The C compiler identification is AppleClang 13.0.0.13000027
...
-- Build files have been written to: /Users/.../.../maingtest/build
(base) ➜  build ninja
[2/2] Linking CXX executable maingtest
(base) ➜  build ls
CMakeCache.txt      CMakeFiles          build.ninja         cmake_install.cmake maingtest
(base) ➜  build ./maingtest 
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from fun
[ RUN      ] fun.add
[       OK ] fun.add (0 ms)
[----------] 1 test from fun (0 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test suite ran. (0 ms total)
[  PASSED  ] 1 test.

可以看到成功的进行了测试并且通过了一个test单元测试。

标签:入门,maingtest,gtest,base,build,test,main
From: https://www.cnblogs.com/xine/p/16746204.html

相关文章

  • 数列分块入门
    数列分块入门算是入门了吧写在前面本人十分之Naive所以写的不好还请见谅。前置知识暴力线段树线段树貌似也不太需要,但本文建立在你已经会线段树的基础上。但真......
  • 【2022-09-30】DRF从入门到入土(五)
    DRF视图继承关系表链接https://www.processon.com/embed/60dec4091e085359888e3e722个视图基类#之前写的5个接口,我们都是继承APIView#还可以继承GenericAPIView:它......
  • 【Java】【入门】【Java环境部署与项目导入】
    【Java】【入门】【Java环境部署与项目导入】一、jdk安装1.1、点击exe文件,开始安装1.2、设置安装目录(记住此目录,在idea创建项目时需要使用)1.3、剩下的都是下一步二......
  • python从入门到报废学习线路规划
    计算机基础计算机基础之编程计算机组成原理计算机操作系统编程语言分类Python解释器和集成环境-解释器:3.10-pycharm,vscode-配置清华源:第三方模块,国外Python基......
  • Vue3 + React18 + TS4 入门到实战
    前端项目开发,基本绕不开Vue+TS或React+TS,因此,这已经成为前端开发工程师日常需掌握的三大热门技术。本课程针对真正的初级前端同学而设,带大家系统地掌握3者目前新版......
  • kaldi入门-编译安装 https://www.cnblogs.com/parser/p/10036579.html
    kaldi入门-编译安装 1、下载代码gitclone https://github.com/kaldi-asr/...cdkaldi2、编译toolscdtools./extras/check_dependences.shmake-j43、编译cdsrc......
  • Docker入门学习
    1.运行第一个docker容器dockerrun-i-tubuntu/bin/bash参数说明:-i,--interactive=false,打开STDIN,用于控制台交互-t,--tty=false,分配tty设备,该可以支持终端登录,默认......
  • Vue3 从入门到入土(TypeScript接口)
    前言在上一章,我们就写过简单的接口,本章更深入的了解接口接口是对象的状态(属性)和行为(方法)的抽象(描述)接口以例子来了解,我们有这样的需求定义一个对象存放用......
  • Springboot从入门到精通
    SpringBoot创建SpringBoot有两种创建方法,一种是在IDEA中创建,一种是在Spring官网创建,两种方法是一样的,但是需要联网。SpringBoot项目快速启动1.对SpringBoot项目打包(执行......
  • Taurus.MVC 微服务框架 入门开发教程:项目集成:1、服务端:注册中心、网关(提供可运行程序
    系列目录:本系列分为项目集成、项目部署、架构演进三个方向,后续会根据情况调整文章目录。本系列第一篇:​​Taurus.MVCV3.0.3微服务开源框架发布:让.NET架构在大并发的演进......