CircleCI로 파이썬 테스트 자동화
지속적 통합, CI(영문: continuous integration)는 모든 개발자의 작업 사본을 하루에 여러 번 공유된 메인라인에 병합하는 것입니다.
(wikipedia)
통합이라고 들으면 수수께끼이지만, 요컨대 빌드, 테스트, 배포 작업을 자동화하는 개발 방식입니다. CI를 도입함으로써 소프트웨어 개발을 효율적으로 실시할 수 있는 것 같다.
이 기사에서는 CircleCI와 Github를 연계시켜 파이썬 개발 코드를 푸시하면 자동으로 테스트가 실행되는 환경 구축을 목표로합니다.
참조 기사 : htps : //s이 tch. 이오 / 쓰리 아 ls / 안녕하세요, s, g, chichi, thypy, an, d, rc,
도구
계정을 등록하고 CircleCI와 Github를 연동시켜 둔다.
환경설정
프로젝트 만들기
아래와 같이 프로젝트 파일을 작성한다.
폴더 구성
+-- pyhton-ci
+-- src
| +-- match.py
+-- tests
+-- math-test.py
src/math.py
def addition(value1, value2):
if not isinstance(value1, int) and not isinstance(value2, int):
return 'Invalid input'
else:
return value1 + value2
tests/math-test.py
import unittest
from src.math import addition
class MathTest(unittest.TestCase):
def test_addition(self):
actual = addition(3,4)
expected = 8 # 実行結果と一致
self.assertEqual(actual, expected)
명령줄에서 unittest 실행
nosetests tests/math-test.py
AssertionError: 7 != 8
가 출력되어 테스트가 실패했는지 확인한다.CircleCI용 파일 준비
프로젝트에 다음 파일 추가
+-- pyhton-ci
+-- src
| +-- match.py
+-- tests
| +-- math-test.py
+-- requirements.txt
+-- .circleci
+-- config.yml
종속성 관리 파일
requirements.txt
nose==1.3.7
circleCI 설정 파일
version: 2
jobs:
build:
working_directoyr: ~/python-ci
docker:
- image: circleci/python:3.6.4
steps:
- checkout
- run:
command: sudo pip install -r requirements.txt
- run:
command: nosetests tests/math-test.py
새로운 Github 저장소를 만들고 전체 프로젝트 폴더를 develop 브랜치에 푸시합니다.
git push origin develop
CircleCI 설정
CircleCI 화면에서 Projects -> 리포지토리 선택 -> Start Building -> Add Manually -> Start Building
및 선택
Pipelines 화면에 테스트 결과가 표시됩니다.
Github Status Checks 활성화
Github 리포지토리의 Settings -> Branches 탭 -> Add rule 선택
Branch name pattern 에
develop
(개발 브랜치 이름)을 입력하고,Require status checks to pass before merging
Require branches to be up to date before merging
에 체크를 한다.적당히 작업 브랜치를 잘라 develop에 풀릭을 보내 보자.
그러면 풀릭 화면에서 다음과 같은 상태 확인이 수행됩니다.
테스트 코드를 아래와 같이 수정하고 다시 push한다.
math-test.py
class MathTest(unittest.TestCase):
def test_addition(self):
actual = addition(3,4)
expected = 7 # 実行結果と一致
self.assertEqual(actual, expected)
테스트에 통과하고 있는 것을 확인할 수 있었다!
Reference
이 문제에 관하여(CircleCI로 파이썬 테스트 자동화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/xkent/items/3fb33a4fcba45ebfab49텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)