1.安装googletest
- 在https://github.com/google/googletest/releases下载源代码压缩包。
- cd googletest
- mkdir build;cd build
- cmake -DBUILD_SHARED_LIBS=ON -Dgtest_build_samples=ON ..
- make
- make install
2.验证安装是否成功
- cd build/googletest
- ./sample1_unittest
- 输出
Run this program with --check_for_leaks to enable custom leak checking in the tests. [==========] Running 2 tests from 1 test suite. [----------] Global test environment set-up. [----------] 2 tests from ListenersTest [ RUN ] ListenersTest.DoesNotLeak [ OK ] ListenersTest.DoesNotLeak (0 ms) [ RUN ] ListenersTest.LeaksWater [ OK ] ListenersTest.LeaksWater (0 ms) [----------] 2 tests from ListenersTest (0 ms total) [----------] Global test environment tear-down [==========] 2 tests from 1 test suite ran. (0 ms total) [ PASSED ] 2 tests.
- 检查/usr/local/include 包含了GTest、GMock两个文件夹
- 检查/usr/local/lib包含四个库文件
/usr/local/lib/libgmock_main.so /usr/local/lib/libgtest_main.so /usr/local/lib/libgmock.so /usr/local/lib/libgtest.so
3.使用
usegtest.cpp
#include <gtest/gtest.h>
int add(int a, int b) { return a + b; }
TEST(testCase, test0) { EXPECT_EQ(add(2, 3), 5); }
int main(int argc, char **argv)
{
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
CMakeLists.txt
cmake_minimum_required(VERSION 2.4)
project(useso)
add_definitions(-std=c++11)
# 查找 GTest 库
find_package(GTest REQUIRED)
# GTest 的头文件
include_directories(${GTEST_INCLUDE_DIRS})
# 显示GTest路径
MESSAGE(STATUS "GTEST_INCLUDE_DIRS" ${GTEST_INCLUDE_DIRS})
# 生成可执行的文件
add_executable(ugtest usegtest.cpp)
target_link_libraries(ugtest ${GTEST_BOTH_LIBRARIES} pthread)
输出
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from testCase
[ RUN ] testCase.test0
[ OK ] testCase.test0 (0 ms)
[----------] 1 test from testCase (0 ms total)
[----------] Global test environment tear-down
[==========] 1 test from 1 test suite ran. (0 ms total)
[ PASSED ] 1 test.