GTEST极简教程(g++直接编译和CMakeLists组织两种方式)

0. 前言

这是一份极简版教程,描述gtest的安装和最基础的使用,分为使用g++编译和CMakeLists组织文件编译两种方式。

对Gtest需求不大的人员,这份教程足够了。

1. 安装

git clone git@github.com:google/googletest.git
cd googletest
mkdir build 
cd build
cmake ..
sudo make install -j

1.1 测试自带用例

cd googletest/samples
g++ ../src/gtest_main.cc sample1.cc sample1_unittest.cc -o test -lgtest -lgmock -lpthread -std=c++14
./test

输出

Running main() from ../src/gtest_main.cc
[==========] Running 6 tests from 2 test suites.
[----------] Global test environment set-up.
[----------] 3 tests from FactorialTest
[ RUN      ] FactorialTest.Negative
[       OK ] FactorialTest.Negative (0 ms)
[ RUN      ] FactorialTest.Zero
[       OK ] FactorialTest.Zero (0 ms)
[ RUN      ] FactorialTest.Positive
[       OK ] FactorialTest.Positive (0 ms)
[----------] 3 tests from FactorialTest (0 ms total)

[----------] 3 tests from IsPrimeTest
[ RUN      ] IsPrimeTest.Negative
[       OK ] IsPrimeTest.Negative (0 ms)
[ RUN      ] IsPrimeTest.Trivial
[       OK ] IsPrimeTest.Trivial (0 ms)
[ RUN      ] IsPrimeTest.Positive
[       OK ] IsPrimeTest.Positive (0 ms)
[----------] 3 tests from IsPrimeTest (0 ms total)

[----------] Global test environment tear-down
[==========] 6 tests from 2 test suites ran. (0 ms total)
[  PASSED  ] 6 tests.

2. 使用

// main.cpp
#include <gtest/gtest.h>

int add(int a, int b){
    return a+b;
}

// 系列名为A,当前测试用例名为B
TEST(A, B){
    EXPECT_EQ(1, 1);
}


TEST(A, C){
    EXPECT_EQ(add(1,1), 2);
}

int main(){
    testing::InitGoogleTest();
    return RUN_ALL_TESTS();
}
g++ main.cpp -o main -lgtest -pthread && ./main

输出

[==========] Running 2 tests from 1 test suite.
[----------] Global test environment set-up.
[----------] 2 tests from A
[ RUN      ] A.B
[       OK ] A.B (0 ms)
[ RUN      ] A.C
[       OK ] A.C (0 ms)
[----------] 2 tests from A (0 ms total)

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

3. 使用CMAKE组织编译

3.1 目录结构

.
├── build
├── CMakeLists.txt
├── run.sh
└── src
    └── main.cpp

3.2 具体文件

CMakeLists.txt文件

cmake_minimum_required(VERSION 3.5)

project(main)

set(CMAKE_CXX_COMPILE_FLAGS, "-std=c++11")

add_executable(main src/main.cpp)
target_link_libraries(main gtest gmock pthread)

run.sh文件

cd build
rm -rf * .*
cmake ..
make -j
./main

执行

sh ./run.sh

参考

  1. https://blog.csdn.net/wdcyf15/article/details/108855960
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值