[Circle CI] Circle CI에서 codecov이용하기(pytest-cov)

Code Coverage를 측정하는 도구인 codecov를 사용하는 간단한 방법에 대해서 포스팅한다.


사전준비

기본적으로 Github에 계정이 있어야 하며 다음으로 codecov에 들어가서 Sign Up With Github를 클릭해서 로그인을 하고 아래의 사진처럼 Github에서 Repo를 등록합니다.

저 같은 경우에는 Github에 있는 for_run_code의 Repo를 등록하였습니다.

Github Add Repo


설치

패키지 설치

  • python 패키지 모듈이기 떄문에 pip를 통해서 설치가 가능합니다.
pip install codecov pytest-cov

requirements.txt 생성

  • 이제 requirements.txt에 추가를 해줍니다.(Circle CI에서 빌드를 위해서는 필요한거 아시죠? :)
  • virtualenv를 사용하여서 프로젝트별로 pip모듈을 따로 관리하는게 맞지만 codecov를 사용하는 방법만 볼 예정이기 떄문에 우선 모든 pip모듈을 requirements.txt에 기록합니다.
pip freeze > requirements.txt


circle.yml수정

이제 circle.yml을 수정해봅시다. 다음 아래와 같은 설정 값들이 들어가야 합니다.

  • coverage를 측정할 폴더를 --cov값으로 경로를 넣어주시고 그 다음에 테스트를 하기위한 python 파일을 입력해주시면 됩니다.
  • 개인 Repo의 경우에는 token이 필요합니다 토큰은 아래 스크린샷에서 보이는바와 같이 가져오실 수 있습니다.

circle.yml

test:
    override:
        # pytest --cov=./측정할_폴더 테스트파일
        - pytest --cov=./ test_sample.py

    post:
        # 개인 Repo라면 token이 필요합니다!
        # 개인이 아니라면 codecov만 있으면 됩니다.
        - codecov --token=<token>

dependencies:
    pre:
       -  pip install -r requirements.txt

codecov repo setting


repo token


Github에 Push하고 Report를 확인

이제 위의 모든 과정이 완료되었다면 한번 Circle CI에서 어떻게 나오는지 그리고 codecov에서는 어떻게 보고서가 나오는지 스크린샷으로 보도록 하겠습니다.

아래는 우선 Circle CI에서 coverage가 어느정도인지를 확인하고 codecov에 보고서를 보내는 사진입니다.

coverage report

codecov send report


codecov 홈페이지에 가면 아래와 같은 보고서를 볼 수 있습니다.

codecov report


마지막으로 이제 Github에 가면 아래처럼 Integration의 결과들도 commit과 함께 보이는 것을 확인 할 수 있습니다 :)

github result


참고자료

[Linux] 쉘 스크립트에서 멀티프로세스(혹은 스레드) 기능 사용하기

> 백그라운드로 명령어를 실행해서 병렬적으로 실행되는 멀티 프로세스 환경을 만들어보자.## 환경- Linux 기반 시스템- Bash shell(/bin/bash)## 멀티프로세스? 병렬처리? 멀티스레드? 백그라운드 프로세스?- 여기서 진행할 방식...… Continue reading