jenkins를 사용한 장고의 unittest
소개
jenkins에서 django를 사용하여 응용 프로그램의 unitest를 수행하는 단계를 설명합니다.
unittest를 수행하는 샘플 애플리케이션은 github에 게시되었습니다.
전제 사항
unittest(django)
배치 애플리케이션(django)을 기반으로 unittest를 수행하는 단계를 설명합니다.
소프트웨어/응용 프로그램 구성
소프트웨어/응용 프로그램 구성은 다음과 같습니다.
Jenkins 플러그인
jenkins에 다음을 설치합니다.
플러그인
용도
ShiningPanda Plugin
Virtualenv Builder. 가상 환경에서 파이썬 실행
Cobertura Plugin
커버리지 보고서 작성
Jenkins의 파이썬 경로
jenkins의 "Global Tool Configuration"에서 시스템 환경의 파이썬 경로를 설정합니다.
Jenkins 작업 설정
Jenkins에서 작업을 만들고 django unittest를 실행합니다.
소스 코드 관리
가상 환경에서 빌드 등을 수행하기 위해 리포지토리 정보를 입력합니다.
품목
내용
리포지토리 URL
리포지토리 URL을 입력합니다.
빌드할 브랜치
빌드할 분기를 입력합니다.
빌드
Virtualenv Builder
기존 환경과 충돌하지 않도록 Virtualenv를 사용하여 가상 환경에서 unittest를 실행합니다.
품목
내용
파이썬 버전
파이썬 패스을 선택합니다.
Clear
체크하면 가상 환경이 매번 다시 생성됩니다.
자연
Command의 실행 형식을 지정합니다.
Command
unittest를 실행하는 명령을 작성합니다.
Command 샘플은 다음과 같습니다.
#pythonのモジュールをインストールする
pip install beautifulsoup4==4.6.0
pip install Django==2.1.5
pip install django-admin-tools==0.8.1
pip install django-bootstrap-form==3.4
pip install lxml==4.3.0
pip install mysqlclient==1.3.12
pip install pytz==2018.9
pip install PyYAML==3.12
pip install pytest==4.1.1
pip install pytest-cov==2.6.1
pip install pytest-django==3.4.5
#gitからcloneしたパスに合わせて設定ファイルの書き換えを行う
JENKINS_HOME=/var/lib/jenkins/workspace/unittest_pypeach_django
CONF_FILE=application_production.yml
sed -e "s/home\/pypeach/var\/lib\/jenkins\/workspace\/unittest_pypeach_django/g" ${JENKINS_HOME}/resource/${CONF_FILE} > ${JENKINS_HOME}/resource/${CONF_FILE}.tmp
cat ${JENKINS_HOME}/resource/${CONF_FILE}.tmp > ${JENKINS_HOME}/resource/${CONF_FILE}
#メッセージを作成する
django-admin compilemessages -l ja
#unittestを実行する
pytest --ds=pypeach_django.settings --reuse-db --junitxml=unittest.xml app_pypeach_django/test
#カバレッジを実行する
pytest --ds=pypeach_django.settings --reuse-db --cov=app_pypeach_django/test --cov-report=xml
pytest-django
pytest-django를 사용하여 명령 줄에서 unittest를 수행합니다.
테스트 실행
pytest --ds=[settings] --[database creation/re-use] --junitxml=[creating JUnitXML format files] [selecting tests]例)pytest --ds=pypeach_django.settings --reuse-db --junitxml=unittest.xml app_pypeach_django/test
품목
내용
설정
구성 파일 이름 지정
database creation/re-use
새 DB 작성 및 기존 DB 사용 지정
creating JUnitXML format files
테스트 실행 결과를 출력할 경로와 파일 이름 지정
selecting tests
테스트 실행 대상을 지정합니다. 단일 파일 및 패키지 지정 가능
커버리지 실행
pytest --ds=[settings] --[database creation/re-use] --cov=[selecting tests] --cov-report=[file extension]例)pytest --ds=pypeach_django.settings --reuse-db --cov=app_pypeach_django/test --cov-report=xml
품목
내용
설정
테스트 실행과 동일
database creation/re-use
테스트 실행과 동일
selecting tests
테스트 실행 대상을 지정하는 단일 파일이나 패키지 지정이 가능
파일 확장
테스트 실행 결과를 출력하는 파일의 확장자 지정
빌드 후 처리
테스트 결과를 집계합니다.
Junit 테스트 결과 집계
다음 설정
품목
내용
테스트 결과 XML
테스트 결과의 파일을 지정합니다. creating JUnitXML format files과 파일 경로를 맞춥니다.
Cobertura 커버리지 보고서 집계
다음 설정
품목
내용
Cobertura XML 보고서 패턴
테스트 결과 파일(coverage.xml)을 지정합니다. 파일 확장 파일 확장명과 일치
참고 정보
#pythonのモジュールをインストールする
pip install beautifulsoup4==4.6.0
pip install Django==2.1.5
pip install django-admin-tools==0.8.1
pip install django-bootstrap-form==3.4
pip install lxml==4.3.0
pip install mysqlclient==1.3.12
pip install pytz==2018.9
pip install PyYAML==3.12
pip install pytest==4.1.1
pip install pytest-cov==2.6.1
pip install pytest-django==3.4.5
#gitからcloneしたパスに合わせて設定ファイルの書き換えを行う
JENKINS_HOME=/var/lib/jenkins/workspace/unittest_pypeach_django
CONF_FILE=application_production.yml
sed -e "s/home\/pypeach/var\/lib\/jenkins\/workspace\/unittest_pypeach_django/g" ${JENKINS_HOME}/resource/${CONF_FILE} > ${JENKINS_HOME}/resource/${CONF_FILE}.tmp
cat ${JENKINS_HOME}/resource/${CONF_FILE}.tmp > ${JENKINS_HOME}/resource/${CONF_FILE}
#メッセージを作成する
django-admin compilemessages -l ja
#unittestを実行する
pytest --ds=pypeach_django.settings --reuse-db --junitxml=unittest.xml app_pypeach_django/test
#カバレッジを実行する
pytest --ds=pypeach_django.settings --reuse-db --cov=app_pypeach_django/test --cov-report=xml
Reference
이 문제에 관하여(jenkins를 사용한 장고의 unittest), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tz2i5i_ebinuma/items/b7bc5b73320f41be0e07텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)