소프트웨어 프로젝트에서 품질 관리는 매우 중요합니다. 특히, 파이썬으로 작성된 소프트웨어는 품질과 안정성을 위해 단위 테스트(Unit Test)가 필수적입니다. 이를 자동화하기 위해 CI/CD 파이프라인(Continuous Integration/Continuous Deployment Pipeline)을 구축하는 방법을 알아보겠습니다.
1. 단위 테스트 작성
우선, 소프트웨어의 각 기능에 대한 단위 테스트를 작성해야 합니다. 예를 들어, calculator.py
파일에 대한 단위 테스트를 작성한다고 가정해 봅시다.
# calculator_test.py
import unittest
from calculator import add, subtract
class CalculatorTest(unittest.TestCase):
def test_add(self):
self.assertEqual(add(3, 5), 8)
def test_subtract(self):
self.assertEqual(subtract(5, 3), 2)
if __name__ == '__main__':
unittest.main()
2. CI/CD 파이프라인 설정
2.1. GitHub 저장소 설정
GitHub에 소스 코드를 저장하고, 저장소를 새로 만든 후 단위 테스트를 실행할 수 있는 CI 도구와 연동합니다.
2.2. CI 도구 설정
여러 CI 도구 중에서 Jenkins, Travis CI, CircleCI, GitLab CI 등을 활용할 수 있습니다. 간단한 예시로, GitHub Actions을 사용해 보겠습니다.
2.3. GitHub Actions Workflow 작성
# .github/workflows/python.yml
name: Python CI
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python 3.x
uses: actions/setup-python@v2
with:
python-version: 3.x
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Run unit tests
run: python -m unittest discover
위의 GitHub Actions Workflow 파일은 GitHub 저장소 루트에 .github/workflows/python.yml
로 저장됩니다. 이 Workflow는 코드가 푸시되거나 풀 리퀘스트가 생성될 때마다 파이썬 환경을 설정하고, 의존성을 설치한 후 단위 테스트를 수행합니다.
3. 파이프라인 실행 및 결과 확인
GitHub에 코드를 푸시하거나 풀 리퀘스트를 생성하여 파이프라인이 실행되고, 단위 테스트가 수행됩니다. 결과는 GitHub Actions의 웹 인터페이스나 로컬 환경에서 확인할 수 있습니다.
이로써 단위 테스트를 자동화하고, CI/CD 파이프라인을 통해 품질 관리를 보다 효과적으로 할 수 있습니다.