gtest - Google Test 설치 및 테스트
gtest
Google C++ Test Framework.
Unit Test기반 TDD 개발 하기 좋음
gtest link
github
https://github.com/google/googletest
gtest guide
https://google.github.io/googletest/
Env
C++14 이상 필요
gtest installation
$ git clone https://github.com/google/googletest.git$ ls$ cd googletest$ mkdir build.tmp$ cd build.tmp$ cmake -DCMAKE_CXX_FLAGS=-std=c++14 ..$ make$ make install
Test
CMakeLists.txtcmake_minimum_required(VERSION 3.14)project(my_project)# GoogleTest requires at least C++14set(CMAKE_CXX_STANDARD 14)set(CMAKE_CXX_STANDARD_REQUIRED ON)include(FetchContent)FetchContent_Declare(googletestURL https://github.com/google/googletest/archive/03597a01ee50ed33e9dfd640b249b4be3799d395.zip)# For Windows: Prevent overriding the parent project's compiler/linker settingsset(gtest_force_shared_crt ON CACHE BOOL "" FORCE)FetchContent_MakeAvailable(googletest)enable_testing()add_executable(hello_testhello_test.cc)target_link_libraries(hello_testGTest::gtest_main)include(GoogleTest)gtest_discover_tests(hello_test)
hello_test.cc
#include <gtest/gtest.h>
// Demonstrate some basic assertions.
TEST(HelloTest, BasicAssertions) {
// Expect two strings not to be equal.
EXPECT_STRNE("hello", "world");
// Expect equality.
EXPECT_EQ(7 * 6, 42);
}
build.sh
#!/bin/bash
cmake -S . -B build && cmake --build build && cd build && ctest
COMMAND
$ chmod +x ./build.sh
$ ./build.sh
결과
-- The C compiler identification is GNU 9.4.0-- The CXX compiler identification is GNU 9.4.0-- Check for working C compiler: /usr/bin/cc-- Check for working C compiler: /usr/bin/cc -- works-- Detecting C compiler ABI info-- Detecting C compiler ABI info - done-- Detecting C compile features-- Detecting C compile features - done-- Check for working CXX compiler: /usr/bin/c++-- Check for working CXX compiler: /usr/bin/c++ -- works-- Detecting CXX compiler ABI info-- Detecting CXX compiler ABI info - done-- Detecting CXX compile features-- Detecting CXX compile features - done-- Found Python: /usr/bin/python3.8 (found version "3.8.10") found components: Interpreter-- Looking for pthread.h-- Looking for pthread.h - found-- Performing Test CMAKE_HAVE_LIBC_PTHREAD-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed-- Looking for pthread_create in pthreads-- Looking for pthread_create in pthread-- Looking for pthread_create in pthread - found-- Found Threads: TRUE-- Configuring done-- Generating done-- Build files have been written to: /root/gtest_tmp/1/buildScanning dependencies of target gtest[ 10%] Building CXX object _deps/googletest-build/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o[ 20%] Linking CXX static library ../../../lib/libgtest.a[ 20%] Built target gtestScanning dependencies of target gtest_main[ 30%] Building CXX object _deps/googletest-build/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o[ 40%] Linking CXX static library ../../../lib/libgtest_main.a[ 40%] Built target gtest_mainScanning dependencies of target hello_test[ 50%] Building CXX object CMakeFiles/hello_test.dir/hello_test.cc.o[ 60%] Linking CXX executable hello_test[ 60%] Built target hello_testScanning dependencies of target gmock[ 70%] Building CXX object _deps/googletest-build/googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o[ 80%] Linking CXX static library ../../../lib/libgmock.a[ 80%] Built target gmockScanning dependencies of target gmock_main[ 90%] Building CXX object _deps/googletest-build/googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o[100%] Linking CXX static library ../../../lib/libgmock_main.a[100%] Built target gmock_mainTest project /root/gtest_tmp/1/buildStart 1: HelloTest.BasicAssertions1/1 Test #1: HelloTest.BasicAssertions ........ Passed 0.00 sec100% tests passed, 0 tests failed out of 1Total Test time (real) = 0.00 sec
댓글
댓글 쓰기