1.我们先来创建一个简单的功能函数。假设我们要创建一个函数,用来计算两个整数的和。在src目录中,创建一个文件add.cpp:

// add.cpp

#include "add.h"

int add(int a, int b) {

return a + b;

}

同时,我们也需要创建相应的头文件add.h:

// add.h

#ifndef ADD_H

#define ADD_H

int add(int a, int b);

#endif

接下来,我们创建Google Test测试用例。在test目录中,创建一个文件test_add.cpp:

// test_add.cpp

#include "gtest/gtest.h"

#include "add.h"

TEST(AddTest, PositiveNumbers) {

EXPECT_EQ(add(1, 2), 3);

EXPECT_EQ(add(100, 200), 300);

}

TEST(AddTest, NegativeNumbers) {

EXPECT_EQ(add(-1, -2), -3);

EXPECT_EQ(add(-100, -200), -300);

}

然后,我们写一个CMakeLists.txt文件,用来编译我们的程序和测试:

# CMakeLists.txt

cmake_minimum_required(VERSION 3.10)

project(MyProject)

# Enable testing

enable_testing()

# gtest

include_directories(thirdparty/gtest_1.10.0/include)

link_directories(thirdparty/gtest_1.10.0/lib)

# Add the add function

add_library(add src/add.cpp)

target_include_directories(add PUBLIC src)

# Add the test

add_executable(test_add test/test_add.cpp)

target_link_libraries(test_add gtest_main add)

# Add a test

add_test(NAME AddTest COMMAND test_add)

# Enable code coverage

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")

target_link_libraries(add gcov)

最后,我们可以使用gcov(ubuntu中gcc自带)和lcov(安装命令:sudo apt-get install lcov )工具来计算代码覆盖率:

mkdir build

cd build

cmake ..

make

./test_add

lcov --capture --directory . --output-file coverage.info

lcov --list coverage.info

统计结果如下:

参考阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: