반응형
[googletest] gtest_main.cc를 라이브러리에 포함시키기
아래 링크에서 main 함수를 넣었는데, main 함수에서 동작이 고정되어 있다면, googletest에서 제공하는 gtest_main.cc의 main 함수를 이용할 수 있습니다. 이 gtest_main.cc의 main 함수를 library에 포함시켜서, 유닛 테스트 코드에서의 main은 사용하지 않도록 해보겠습니다.
https://zidarn87.tistory.com/617
기존 코드 - 유닛 테스트 코드에 main 함수를 구현함
아래 main 함수를 보면 gtest 라이브러리를 초기화하는 부분과 모든 단위 테스트를 수행하는 명령이 있습니다.
이 부분은 항상 고정으로 사용한다면 gtest_main.cc의 main 함수를 이용하면 됩니다.
#include <gtest/gtest.h>
TEST(Sample, Test1){
}
TEST(Sample, Test2){
FAIL();
}
int main(int argc, char** argv){
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
gtest_main.cc를 라이브러리화
우선 아래 명령어를 이용하여 gtest_main.cc를 빌드합니다.
g++ googletest-1.13.0/googletest/src/gtest_main.cc -c -I ./googletest-1.13.0/googletest/include/
빌드하면 gteste_main.o 파일이 생성되는 것을 볼 수 있습니다.
gtest-all.o와 gtest_main.o 를 library에 포함시킵니다.
ar rcv libgtest.a gtest-all.o gtest_main.o
유닛 테스크 코드의 main 함수를 제거하고 빌드하기
아래와 같이 main 함수를 제거하고, 테스트 케이스 코드만 작성합니다.
#include <gtest/gtest.h>
TEST(Sample, Test1){
}
TEST(Sample, Test2){
FAIL();
}
빌드하고, 실행해봅니다.
빌드도 잘 수행되었고, 테스트 케이스도 잘 수행된 것을 볼 수 있습니다.
반응형
'프로그래밍 > Google Test' 카테고리의 다른 글
[googletest] ASSERT_EQ와 같은 ASSERT_XX 간단 사용 예제 (0) | 2023.04.06 |
---|---|
[googletest] googletest 다운로드 및 간단한 유닛 테스트 케이스 수행하기 - 리눅스 용 (0) | 2023.04.06 |