티스토리 뷰
https://github.com/developer0hye/googletest-hello-world
GitHub - developer0hye/googletest-hello-world
Contribute to developer0hye/googletest-hello-world development by creating an account on GitHub.
github.com
googletest + cmake 를 이용해 단위 테스트 과정을 구현해보았다.
예제는 아래 예제들을 참고했다. matgomes.com 의 예제에서는 곱셈 연산 함수를 예제로 들었는데 나는 덧셈 연산 함수로 예제를 진행했다.

https://matgomes.com/integrate-google-test-into-cmake/
Integrating Google Test Into CMake Projects
Google Test is the most popular testing framework for C++. In this post, you will learn how to integrate GTest into your CMake project in three different ways!
matgomes.com
https://github.com/google/googletest/blob/main/googletest/README.md
GitHub - google/googletest: GoogleTest - Google Testing and Mocking Framework
GoogleTest - Google Testing and Mocking Framework. Contribute to google/googletest development by creating an account on GitHub.
github.com
googletest 설치를 CMake의 FetchContent_Declare 를 기반으로 하였는데, 여기서 좀 불편한점이 있었다.
FetchContent_Declare 를 사용해서 프로젝트를 땡겨오면 build 과정에서 설치가 되어진다. 그러면 PC에 googletest 가 따로 기존에 설치되지 않았으면, VSCode상에서 gtest 헤더 파일을 못찾아서 gtest 관련 함수에 대한 intellisense 가 제대로 동작하지 않는다. 원활한 intellisense 동작을 위해서는 한 번 코드를 대강짜고 빌드후에 다시 작업을 해줘야한다. 살짝 불편하다.
*이건 아마 Configure 과정에서 받아오는 옵션이 따로있거나 아예 명령어가 따로 있을 거 같긴하다.
내 경우에는 {프로젝트 폴더}/build 에서 빌드되도록 하니
{프로젝트 폴더}/build/_deps/googletest-src/ 경로로 googletest가 다운로드가 됐다.
그래서 intellisense를 위하여 해당 경로를 추가해줬다.

그다음 빌드를 하니 build 폴더내에 test 란 폴더가 생겼고 거기에 내가 지정한 테스트 실행 파일이 생성됨을 확인하였다.

굳이 저 경로까지 들어가서 실행할 필요는 없고 build 폴더에서 ctest . 라고만 입력해주면 테스트 프로그램이 실행된다.

테스트 내용은 아래와 같다.
그냥 1+1, 0+0이 잘나오나 정도만 체크했다.

그 다음은 Github Actions 에서 빌드부터 테스트까지 수행되게끔 스크립트를 작성하였다.
main 브랜치에서 잘되는 걸 확인하고

verify-test 라는 브랜치를 하나 새로 따고 고의로 테스트를 실패하도록 add 함수에서 덧셈 연산 대신 곱셈 연산이 실행되도록 수정했다.

그다음 PR을 날려봤다.
https://github.com/developer0hye/googletest-hello-world/pull/1
+ 대신 * 로 변경 by developer0hye · Pull Request #1 · developer0hye/googletest-hello-world
actions 의 build&test 과정에서 걸려서 실패해야함
github.com
결과는...!
실패! Github Actions에서 잘잡아냈다.

어디서 실패한건지 로그를 봐보자.

Test 과정에서 오류가 발생했다! 잘잡아냈다.
이제 아래 프로젝트에도 적용해봐야겠다.
https://github.com/developer0hye/Modern-Cpp-NMS
GitHub - developer0hye/Modern-Cpp-NMS: A Modern C++ implementation of NMS
A Modern C++ implementation of NMS. Contribute to developer0hye/Modern-Cpp-NMS development by creating an account on GitHub.
github.com
'기타' 카테고리의 다른 글
| [관제, 선별 관제 관련 뉴스] 법 바뀌자 아파트 주민들 '전전긍긍' / OBS 뉴스O (0) | 2023.02.11 |
|---|---|
| Yolo_Label 스타 300개 돌파! (0) | 2023.02.08 |
| github actions 건드려보는중... (0) | 2023.01.25 |
| [WSL2] Ubuntu 22.04 설치 (Deprecated) (0) | 2023.01.14 |
| [Qt] Ubuntu 배포 (0) | 2023.01.13 |
- Total
- Today
- Yesterday
- ㅂ
- FairMOT
- C++ Deploy
- Lowest Common Ancestor
- PyCharm
- 파이참
- cosine
- 백트래킹
- 순열
- MOT
- 백준 11437
- 문제집
- 인공지능을 위한 선형대수
- 이분탐색
- 단축키
- 백준 11053
- LCA
- 백준
- 조합
- 가장 긴 증가하는 부분 수열
- 자료구조
- 위상 정렬 알고리즘
- 백준 1766
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
