가짜 데이터베이스 객체를 완성했다.
이런식으로 쿼리문을 보내면
이렇게 데이터를 볼 수 있다.
TDD의 최고 장점중 하나는 Test 파일 자체가 하나의 명세가 된다는 것인데
이렇게 모든 테스트를 통과한 것에 한하여
테스트를 진행하기 위해 작성했던 일련의 코드들이
이 객체를 어떻게 사용해야 하는가를 직관적으로 보여준다는 말이다.
사용법이 이해되지 않을 경우 이런 테스트 코드를 참고하여 코딩을 이어갈 수 있다.
어느 정도 프로젝트의 형태가 잡혀가는 지금
CI/CD를 도와주는 github action을 적용해 보자.
특히 코드의 품질을 측정해서 뱃지로 알려주는 Code Climate을 연동해 보자.
내가 이전에 작성한 글을 참고하면 Code Climate의 기능을 알 수 있다.
2021.09.23 - [MLOps/MyTemplate] - [DLTemplate] #3 github action과 codeclimate
간략하게 말하자면 빌드나 검사에 관한 명령어를 미리 작성하고
git push를 실행할 때 깃헙에서 가상의 OS를 빌려와 작성된 수행을
자동으로 진행하게 하는 것을 말한다.
github action을 사용하기 위해서는 위와 같은 경로에 yml파일이 존재해야한다.
yml파일은 어떤 git 명령시에 동작할지 명시하고
그 아래로는 어떤 작업들을 할지 명시한다.
여기서는 ubuntu의 최신 os를 불러오고 Go환경을 세팅한 후
내 프로젝트가 빌드되는지 확인하는 명령이 작성되어 있다.
이 기능을 잘 이용하면 여러 OS에서 배포되는 상황을 자동으로 검사할 수 있고
만약 성공하지 못하면 push나 merge가 안되도록 되어있어 코드를 안전하게 유지할 수 있다.
이제 test를 자동으로 진행하고 test에 통과하지 못할경우 다음 스텝으로 못 넘어가게 해보자.
이렇게 파일을 작성해 보았다.
먼저 우분투 최신 버전에 go 환경을 세팅해 주고
33~36 라인에 걸쳐
go test를 실행하는데 이때 실행한 내역을 c.out 파일로 남겨준다.
이 내용이 code climate로 보내져서 기록되고 분석되고 뱃지로 만들어 진다.
이때 c.out의 경우 패키지 단위로 GOPATH가 기록되므로
이 GOROOT을 상대주로소 바꿔줄 필요가 있어
shell script로 작성해 주었다.
그 아래는
38~41 라인에 걸쳐
Gocov 라는 툴을 이용해서 리포트를 출력하게 했는데
이 Gocov를 이용해 만든 리포트도 역시 Code Climate에서 지원하는 포멧이긴 하다.
실행 내역은 아래에서 확인 하자
43~46에 걸쳐 Code Climate에 관한 명령이 실행된다.
디테일은 위에 첨부한 이전 글 링크를 읽기 바란다.
그러면 이제 실행해볼 차례다
git push를 해주면
이렇게 Actions 탭에 새로 어떤 작업이 생긴 것을 볼 수 있다.
위에서 작성한 build 와 test가 있고
이렇게 실행된 터미널 아웃풋 까지 볼 수 있다.
그리고 현재 내 repo의 코드 품질도 한눈에 확인할 수 있다.
'코딩 아카이브 > Golang' 카테고리의 다른 글
TDD와 cleancode로 만들면서 배우면서 Golang backend -5 (0) | 2022.04.22 |
---|---|
TDD와 cleancode로 만들면서 배우면서 Golang backend -4 (0) | 2022.04.20 |
TDD와 cleancode로 만들면서 배우면서 Golang backend -3 (0) | 2022.04.15 |
TDD와 cleancode로 만들면서 배우면서 Golang backend -2 (0) | 2022.04.11 |
TDD와 cleancode로 만들면서 배우면서 Golang backend -1 (0) | 2022.04.10 |
댓글