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
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
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
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'),
}
}
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.
Définissez la sortie du rapport de test sur l'écran de réglage du projet cible.
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
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.
Avec les paramètres ci-dessus, le rapport de test sera affiché dans Jenkins lorsque la construction est exécutée.
Recommended Posts