Qu'est-ce que CI
L'intégration continue, CI, est la fusion de copies de travail de tous les développeurs en une ligne principale partagée plusieurs fois par jour. (wikipedia)
C'est un mystère d'entendre l'intégration, mais c'est essentiellement une méthode de développement qui automatise le travail de construction, de test et de déploiement. En introduisant CI, il semble que le développement de logiciels peut être effectué efficacement.
Dans cet article, nous visons à créer un environnement dans lequel CircleCI et Github sont liés afin que les tests soient automatiquement exécutés lorsque le code de développement python est poussé. Article de référence: https://scotch.io/tutorials/continuous-integration-with-python-and-circle-ci
Créez un compte et associez CircleCI et Github.
Créez un fichier de projet comme indiqué ci-dessous.
Structure des dossiers
+-- pyhton-ci
+-- src
| +-- match.py
+-- tests
+-- math-test.py
src/math.py
def addition(value1, value2):
if not isinstance(value1, int) and not isinstance(value2, int):
return 'Invalid input'
else:
return value1 + value2
tests/math-test.py
import unittest
from src.math import addition
class MathTest(unittest.TestCase):
def test_addition(self):
actual = addition(3,4)
expected = 8 #Correspond au résultat de l'exécution
self.assertEqual(actual, expected)
Exécutez unittest à partir de la ligne de commande
nosetests tests/math-test.py
ʻAssertionError: 7! = 8` s'affiche et confirme que le test a échoué.
Ajoutez les fichiers suivants à votre projet
+-- pyhton-ci
+-- src
| +-- match.py
+-- tests
| +-- math-test.py
+-- requirements.txt
+-- .circleci
+-- config.yml
Fichier de gestion des dépendances
requirements.txt
nose==1.3.7
fichier de configuration circleCI
version: 2
jobs:
build:
working_directoyr: ~/python-ci
docker:
- image: circleci/python:3.6.4
steps:
- checkout
- run:
command: sudo pip install -r requirements.txt
- run:
command: nosetests tests/math-test.py
Créez un nouveau référentiel Github et transférez l'ensemble du dossier du projet dans la branche de développement.
git push origin develop
Sur l'écran CircleCI, sélectionnez Projects-> Repository-> Start Building-> Add Manually-> Start Building Et sélectionnez
Les résultats du test s'affichent sur l'écran Pipelines.
Sélectionnez Paramètres-> onglet Branches-> Ajouter une règle dans le référentiel Github
Entrez develop
(nom de la branche de développement) dans le modèle de nom de la branche
Require status checks to pass before merging
Require branches to be up to date before merging
Cochez la case.
Coupez la branche de travail de manière appropriée et envoyez une pull request pour développer. Ensuite, la vérification d'état suivante est effectuée sur l'écran de demande d'extraction.
Modifiez le code de test comme ci-dessous et appuyez à nouveau.
math-test.py
class MathTest(unittest.TestCase):
def test_addition(self):
actual = addition(3,4)
expected = 7 #Correspond au résultat de l'exécution
self.assertEqual(actual, expected)
J'ai pu confirmer qu'il a réussi le test!
Recommended Posts