jenkins를 사용한 장고의 unittest

9799 단어 Jenkins장고unittest

소개



jenkins에서 django를 사용하여 응용 프로그램의 unitest를 수행하는 단계를 설명합니다.
unittest를 수행하는 샘플 애플리케이션은 github에 게시되었습니다.

전제 사항


  • 샘플 응용 프로그램에 대한 자세한 내용은 배치 애플리케이션(django)을 참조하십시오
  • jenkins는 2.150.2를 사용합니다

  • 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)을 지정합니다. 파일 확장 파일 확장명과 일치


    참고 정보


  • Full pytest documentation
  • pytest-django Documentation
  • Welcome to pytest-cov’s documentation!
  • 좋은 웹페이지 즐겨찾기