Gtest 安装使用
1. 安装Gtest
git clone https://github.com/google/googletest.git
cd googletest
mkdir build && cd build && cmake .. && make -j32
sudo make install
sudo ldconfig
2. 编写测试模块:
文件结构如下:
.
├── build
├── CMakeLists.txt
├── include
│ └── shubinggtest.h
└── src
└── gtestshubing.cpp
CMakeListes.txt:
cmake_minimum_required(VERSION 3.10)
project(gtest_demo)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)
include_directories(${PROJECT_SOURCE_DIR}/include)
find_package(GTest REQUIRED)
include_directories(${GTEST_INCLUDE_DIRS})
add_executable(runTests src/gtestshubing.cpp)
target_link_libraries(runTests ${GTEST_LIBRARIES} pthread )
enable_testing()
add_test(NAME runTests COMMAND runTests)
.c 文件:
/*================================================================
* Copyright (C) 2024 Sangfor Ltd. All rights reserved.
*
* 文件名称:
* 创 建 者:
* 创建日期:2024年06月04日
* 描 述:
*
================================================================*/
#include <gtest/gtest.h>
#include <iostream>
class ShubingTest : public testing::Environment{
public:
virtual void SetUp(){
std::cout<<"ShubingTest SetUp"<<std::endl;
}
virtual void TearDown(){
std::cout<<"ShubingTest TearDown"<<std::endl;
}
};
int add(int a,int b){
int temp = 0;
for(int i=0;i<1000000000;i++){
temp += a + b;
}
return temp;
}
int sub(int a,int b){
return a - b;
}
TEST(AddTest,AddTest1){
// EXPECT_EQ(add(1,2),3);
add(1,2);
}
TEST(AddTest,AddTest2){
// EXPECT_EQ(add(1,2),3);
sub(1,2);
}
int main(int argc, char **argv) {
testing::InitGoogleTest(&argc, argv);
testing::Environment* env = new ShubingTest();
testing::AddGlobalTestEnvironment(env);
return RUN_ALL_TESTS();
}
cd 到build: 执行cmake …/ && make
执行./runTests