安装
ubuntu 系统如下,其他系统需要根据实际情况安装,或源码安装
sudo apt update
sudo apt install libgtest-dev
示例
需要被测试的文件
// calculator.h
#ifndef CALCULATOR_H
#define CALCULATOR_H
class Calculator {
public:
int add(int a, int b);
int subtract(int a, int b);
};
#endif // CALCULATOR_H
// calculator.cpp
#include "calculator.h"
int Calculator::add(int a, int b) {
return a + b;
}
int Calculator::subtract(int a, int b) {
return a - b;
}
编写测试文件:
// test_calculator.cpp
#include "calculator.h"
#include "gtest/gtest.h"
// 定义测试集合
class CalculatorTest : public ::testing::Test {
protected:
Calculator calc; // 实例化Calculator对象
};
// 测试加法
TEST_F(CalculatorTest, Add) {
EXPECT_EQ(calc.add(1, 2), 3);
EXPECT_EQ(calc.add(-1, 1), 0);
EXPECT_EQ(calc.add(-1, -1), -2);
}
// 测试减法
TEST_F(CalculatorTest, Subtract) {
EXPECT_EQ(calc.subtract(10, 5), 5);
EXPECT_EQ(calc.subtract(3, 5), -2);
EXPECT_EQ(calc.subtract(-1, -1), 0);
}
编写cmake
cmake_minimum_required(VERSION 3.10)
project(CalculatorTest)
# 设置C++标准
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)
# 查找Google Test库
find_package(GTest REQUIRED)
# 添加Calculator类
add_library(calculator STATIC calculator.cpp)
# 添加测试
add_executable(test_calculator test_calculator.cpp)
# 链接Google Test库
target_link_libraries(test_calculator PRIVATE GTest::GTest GTest::Main calculator)
# 设置编译选项
set_target_properties(test_calculator PROPERTIES CXX_STANDARD 11)
# 设置测试运行器
enable_testing()
add_test(NAME RunTests COMMAND test_calculator)
打开终端进入目录,依次运行
mkdir build
cd build
cmake ..
make
ctest
ctest
是一个常用的命令行工具,用于执行由CTest管理的测试。CTest是CMake的一部分,它提供了构建自动化测试套件的能力,包括发现、调度和运行测试。
当你在CMake项目中启用了测试(通过enable_testing()
),并添加了测试可执行文件(使用add_test
命令),CTest就会负责管理和执行这些测试。当你运行ctest
命令时,它会:
- 查找所有被标记为测试的目标。
- 执行每个测试目标,并收集结果。
- 报告每个测试的状态(通过、失败或错误)。
- 提供汇总信息,例如测试总数、通过数、失败数等。