[PYTHON] Jusqu'à ce que vous définissiez ce que vous avez fait avec Django avec Jenkins

Notes sur l'écriture de tests dans Django, la sortie des rapports de test et des rapports de couverture, et la sortie des résultats des tests vers Jenkins J'ai fait référence à l'article suivant. Test avec Django

supposition

Bitbucket et Jenkins ont été liés. Lorsque vous passez de l'environnement local à Bitbacket, la compilation Jenkins s'exécutera automatiquement et le test sera exécuté. Veuillez vous référer au blog suivant pour créer ces environnements.

À propos de la coopération entre le référentiel privé de Bitbucket et Jenkins

Construire un environnement de test avec Django

Installation du module

Installez le django-nose et la couverture avec pip. J'avais l'habitude de créer un environnement similaire en utilisant unittest-xml-reporting, mais je pense que django-nose est beaucoup plus facile.

$ pip install django-nose coverage

Paramètres dans le fichier des paramètres de test

Décrivez les paramètres de test dans le fichier des paramètres de test.

# settings_test.py

# -*- coding:utf-8 -*-
from mysite.settings import *
import os

TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
#Rapport de couverture(html)Spécifiez le dossier à sortir
COVERAGE_REPORT_HTML_OUTPUT_DIR = '.cover'

#Définition des arguments lors de l'exécution d'un test(argument de nez)
NOSE_ARGS = [
    '--with-xunit',
    '--with-coverage',
    '--cover-xml',
    '--cover-html',
    '--cover-package=app', #Spécifiez le nom de l'application à tester
]

#Paramètres d'environnement B pour les tests(settings.Séparé de l'environnement DB de py)
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'test.db'),
    }
}

Essai

Créez le code de test sous app (app / tests.py), spécifiez settings_test dans le fichier de paramètres comme indiqué ci-dessous et exécutez le test.

$ python manage.py test app --settings=mysite.settings_test

Succès si le rapport de couverture (html) est sorti sur mysite / cover et nosetests.xml et coverage.xml sont affichés directement sous mysite Vous êtes maintenant prêt à CI avec Jenkins.

Afficher le rapport de test dans Jenkins

Définissez la sortie du rapport de test sur l'écran de réglage du projet cible.

Ecrire une commande pour exécuter le test

Sélectionnez Exécuter Shell pour la construction et écrivez une commande pour exécuter le test suivant dans la zone de texte du script shell. Lorsque la construction Jenkins est exécutée, la commande décrite est exécutée.

#Exécutez virtualenv(Créez un environnement dans n'importe quel endroit à l'avance)
source /var/www/django/mysite/venv/bin/activate
#Lancer le test
python manage.py test app --settings=mysite.settings_test

Spécification d'un rapport de test (fichier xml)

Entrez le nom du fichier xml de sortie pour le modèle de rapport XML Cobertura pour le traitement post-construction et l'agrégation des résultats JUnit. Cette fois, xml est sorti directement sous mysite, vous pouvez donc simplement entrer le nom du fichier. スクリーンショット 2014-11-11 1.15.54.png

Avec les paramètres ci-dessus, le rapport de test sera affiché dans Jenkins lorsque la construction est exécutée.

スクリーンショット 2014-11-11 1.29.31.png

Recommended Posts

Jusqu'à ce que vous définissiez ce que vous avez fait avec Django avec Jenkins
Jusqu'à ce que vous démarriez Jupyter dans Docker
Application de publication sur Twitter réalisée avec Django
Jusqu'à ce que Python fonctionne sur Apache
Jusqu'à ce que tu secoues le rubis avec renpy
Python | Ce que vous pouvez faire avec Python
Votre propre client Twitter réalisé avec Django
Lecteur RSS simple réalisé avec Django
Notez jusqu'à ce que vous utilisiez emacs avec WSL
Ce que vous pouvez faire avec l'API vol.1
Jusqu'à ce que vous confirmiez la communication iOS avec mitmproxy
Jusqu'à ce que l'application Web créée avec Bottle soit publiée (déployée) sur Heroku
Ce que vous pouvez faire avec des compétences en programmation
Jusqu'à ce que vous puissiez utiliser opencv avec python
J'ai fait une application WEB avec Django
Jusqu'à ce que vous utilisiez l'API Kaggle avec Colab
Que comparez-vous avec Python et ==?
Débutants en Python accro à Django
Jusqu'à l'utilisation de PhantomJS avec Python sur Heroku
Jusqu'à ce que vous créiez une nouvelle application dans Django
Qu'utilisez-vous lorsque vous testez avec Python?
Qu'est-ce que Django? .. ..
Internationalisation avec Django
CRUD avec Django
Liens pour faire ce que vous voulez avec Sublime Text
Lorsque vous souhaitez filtrer avec le framework Django REST
Application Web réalisée avec Python3.4 + Django (Construction de l'environnement Part.1)
pickle Pour lire ce qui a été fait en 2 séries avec 3 séries
Jusqu'à ce que vous exécutiez le serveur Django avec Visual Studio Code
Déployer l'application Django créée avec PTVS sur Azure
[GitHub] Jusqu'à ce que vous tiriez avec ssh à l'aide des clés Deploy
Ce que vous ne pouvez pas faire avec hstack ou vstack avec dstack
Choses à faire lorsque vous commencez à développer avec Django
Jusqu'à ce que TensorFlow-GPU soit installé avec pip dans l'environnement Windows
Ce que vous pouvez et ne pouvez pas faire avec Tensorflow 2.x
Jusqu'à ce que vous puissiez faire une reconnaissance d'image simple avec Jupyter