티스토리 뷰
https://github.com/developer0hye/googletest-hello-world
googletest + cmake 를 이용해 단위 테스트 과정을 구현해보았다.
예제는 아래 예제들을 참고했다. matgomes.com 의 예제에서는 곱셈 연산 함수를 예제로 들었는데 나는 덧셈 연산 함수로 예제를 진행했다.
https://matgomes.com/integrate-google-test-into-cmake/
https://github.com/google/googletest/blob/main/googletest/README.md
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
결과는...!
실패! Github Actions에서 잘잡아냈다.
어디서 실패한건지 로그를 봐보자.
Test 과정에서 오류가 발생했다! 잘잡아냈다.
이제 아래 프로젝트에도 적용해봐야겠다.
'기타' 카테고리의 다른 글
[관제, 선별 관제 관련 뉴스] 법 바뀌자 아파트 주민들 '전전긍긍' / 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
- Lowest Common Ancestor
- 순열
- 백준 11053
- 조합
- MOT
- 가장 긴 증가하는 부분 수열
- 백트래킹
- 위상 정렬 알고리즘
- 단축키
- 백준 1766
- 파이참
- 인공지능을 위한 선형대수
- 자료구조
- 이분탐색
- PyCharm
- ㅂ
- 백준
- 문제집
- C++ Deploy
- FairMOT
- 백준 11437
- LCA
- cosine
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |