Pytest & Github action & Docker

Stop._.bmin·2023년 3월 12일
0

Python FastAPI

목록 보기
4/10

Pytest

🤔 PYTEST

현재 어떠한 platform에서 작동하고 있고, 어떤 에러가 발생했는지 그리고 마지막에 요약을 통해 총 몇 개의 테스트가 통과(pass), 실패(fail)했는 지와 함께 총 테스트 시간을 알려준다.
"pytest is a mature full-featured Python testing tool that helps you write better programs."

Test Driven Development

테스트 주도 개발이라고 한다.
반복 테스트를 이용한 소프트웨어 방법론으로 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현한다.

최근 이러한 방식으로 개발을 많이한다고 한다. 이를 가능케 하는 것이 pytest이다.

설치 과정이다.

$pip3 install -U pytest

테스트

x + 1 = 5에 3 + 1 = 5라고 하면 틀렸으니 오류를 찾아준 것이다

github action

GitHub Actions를 사용하여 리포지토리에서 바로 소프트웨어 개발 워크플로를 자동화, 사용자 지정 및 실행합니다. CI/CD를 포함하여 원하는 작업을 수행하기 위한 작업을 검색, 생성 및 공유하고 완전히 사용자 정의된 워크플로에서 작업을 결합할 수 있습니다.

github에서 공식적으로 설명한 바는 위와 같다.

다른 블로그를 참고하여 정리해보았다.

더 이해하기 쉬웠던 개념 정리

GitHub Actions를 사용하면 자동으로 코드 저장소에서 어떤 이벤트(event)가 발생했을 때 특정 작업이 일어나게 하거나 주기적으로 어떤 작업들을 반복해서 실행시킬 수도 있다.

예시

누군가가 코드 저장소에 Pull Request를 생성하게 되면 GitHub Actions를 통해 해당 코드 변경분에 문제가 없는지 각종 검사를 진행할 수 있는 것이다. 어떤 새로운 코드가 메인(main) 브랜치에 유입(push)되면 GitHub Actions를 통해 소프트웨어를 빌드(build)하고 상용 서버에 배포(deploy)할 수도 있습니다. 뿐만 아니라 매일 밤 특정 시각에 그날 하루에 대한 통계 데이터를 수집시킬 수도 있다.

이렇게 소프트웨어 프로젝트에서 지속적으로 수행해야하는 반복 작업들을 업계에서는 소위 CI/CD라고 많이 줄여서 부른다. 사람이 매번 직접 하기에는 비효율적인데다가 실수할 위험도 있기 때문에 GitHub Actions와 같은 자동화시키는 것이 유리하다.

Docker

도커에 관한 이야기는 저번에 최성기교수님의 유닉스 시간에 가상머신의 개념을 학습하면서 배웠다.

이게 수업 당시 ppt인데, 중간에 있는 것이 virtual box, UTM같은 것이고 마지막에 있는 것이 Docker였다.

  • docker은 virtual box보다 더 가볍고, 모두 가상머신에 깔 필요 없이 환경만을 가져오는 것이라고 하였다. 가상화된 공간을 사용한다는 개념이었다.
  • 성능, 속도에 이점을 가지고 있다고 하였다.
profile
원하는 만큼만

0개의 댓글