C++测试工具gtest linux下安装使用

下载安装gtest

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

测试例子1(源代码来自这里

#include <gtest/gtest.h>
#include <iostream>

int test_fun(int a) {
    return a + 1;
}

// 单元测试
TEST(FunTest, HandlesZeroInput) {
  EXPECT_EQ(1, test_fun(0));
}

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

CMakeList.txt(可以再clion下使用)

cmake_minimum_required(VERSION 2.10)
project(test)
set(CMAKE_CXX_STANDARD 11)
add_executable(test test.cc)
target_link_libraries(test gtest pthread)

(手动编译)

mkdir build
cmake ..
make -j4

测试例子2

//
// Created by liushuai on 18-8-16.
//

#include<iostream>
using namespace std; 
#include<gtest/gtest.h>

int Abs(int x)
{
     return x > 0 ? x : -x;
}

TEST(IsAbsTest,HandlerTrueReturn)
{
    ASSERT_TRUE(Abs(1) == 1) << "Abs(1)=1";  //ASSERT_TRUE期待结果是true,operator<<输出一些自定义的信息
    ASSERT_TRUE(Abs(-1) == 1) << "Abs(-1)=1";
    ASSERT_FALSE(Abs(-2) == -2);  //期待结果是false
    ASSERT_EQ(Abs(1),Abs(-1));
    ASSERT_NE(Abs(-1),0);
    ASSERT_LT(Abs(-1),2);
    ASSERT_GT(Abs(-1),0);
    ASSERT_LE(Abs(-1),2);
    ASSERT_GE(Abs(-1),0);
}
int main(int argc, char **argv) {
    ::testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}

cmake文件

cmake_minimum_required(VERSION 3.10)
project(ex12)

set(CMAKE_CXX_STANDARD 11)
find_library(Gtest libgtest.a /usr/local/lib)
add_executable(ex12 test2.cc )
target_link_libraries(ex12 ${Gtest} pthread)

测试运行结果如下:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/bleedingfight/article/details/81744113