본문 바로가기
컴퓨터/C & C++

[C++] google test 실제 코드에서 컴파일 및 수행 방법

by HanJoohyun 2023. 9. 3.
반응형

실제 코드에 적용

목차

  1. google test 설치 방법
  2. google test 수행 방법, ASSERT와 EXPECT
  3. google test 다양한 ASSERT, EXPECT 테스트 방법
  4. google test 실제 코드에서 컴파일 및 수행 방법 (본 글)

들어가며

지금까지는 gtest를 설치하고 ASSERT, EXPECT의 다양한 macro들을 알아보았습니다. 이번 포스팅에서는 소스코드와 헤더파일 그리고 테스트 코드 파일이 분리된 환경에서 gtest를 수행하는 방법에 대해서 알아보겠습니다.

code design

04.factorial.cpp : factorial 를 계산해주는 함수가 있는 소스코드
04.factorial.h : factorial.cpp 의 header 파일
04.factorial_main.cpp : main 함수 소스코드
04.factorial_test.cpp : gtest 소스코드

  • Compile command line
    먼저 코드가 잘 작동하는지 확인하기 위해 factorial 함수가 있는 소스코드와 main 함수가 있는 소스코드를 컴파일하여 잘 수행되는지 확인해봅시다.잘 되는군요. 그다음은 test 코드를 컴파일해봅시다.
  • $ g++ -c 04.factorial.cpp $ g++ -o 04.factorial_main 04.factorial_main.cpp 04.factorial.o $ ./04.factorial_main 120
$ g++ -o 04.factorial_test 04.factorial_test.cpp 04.factorial.o -lgtest -std=c++14
$ ./04.factorial_test
[==========] Running 2 tests from 2 test suites.
[----------] Global test environment set-up.
[----------] 1 test from FactorialTest
[ RUN      ] FactorialTest.Zero
[       OK ] FactorialTest.Zero (0 ms)
[----------] 1 test from FactorialTest (0 ms total)

[----------] 1 test from factorialTest
[ RUN      ] factorialTest.Positive
[       OK ] factorialTest.Positive (0 ms)
[----------] 1 test from factorialTest (0 ms total)

[----------] Global test environment tear-down
[==========] 2 tests from 2 test suites ran. (0 ms total)
[  PASSED  ] 2 tests.

04.factorial_test.cpp 에 있던 두 종류의 테스트 모두 통과했음을 확인할 수 있습니다.

마치며

이번 포스팅에서는 실제로 소스코드와 헤더파일 그리고 테스트 코드 파일이 분리된 환경에서 gtest를 수행하는 방법에 대해 알아보았습니다. 다음시간에는 test fixture에 대해 알아보겠습니다. 여러분들께 도움이 되었으면 좋겠습니다.

REFERENCE

https://google.github.io/googletest/primer.html

반응형

댓글