Définir le test python dans jenkins

Concernant unittest

Préparation

Installez unittest. (Les paramètres Python sont omis)

pip install unittest

exemple unittest:

test.py


import unittest

class TestTagAprioriMain(unittest.TestCase):

    def setUp(self):
        print('start')

    def tearDown(self):
        print('finished')

    def test_success(self):
        res = 1 + 2
        self.assertEqual(res, 3)

    def test_success2(self):
        res = 1 + 2
        self.assertEqual(res, 3)

    def this_is_ignored(self):
        res = 1 + 2
        self.assertEqual(res, 1)

if __name__ == '__main__':
    unittest.main()

Résultat d'exécution


start
finished
.start
finished
.
----------------------------------------------------------------------
Ran 2 tests in 0.000s

OK

Le point que je veux supprimer:

  1. Les méthodes commençant par test_ sont soumises à des tests. (Dans l'exemple ci-dessus, this_is_ignored n'est pas appelé, il est exécuté 2 tests.)
  2. setUp et tearDown sont appelés avant la méthode test (test_ <..>), respectivement. (Il sort le début et la fin pour qu'il soit plus facile de comprendre quand il est appelé)
  3. Cette fois, j'ai utilisé self.assertEqual () pour vérifier si les deux sont identiques, mais il y en a beaucoup d'autres, alors utilisez celui qui convient.

Comment tester

Choses de base:

self.assertEqual() 
self.assertTrue()
self.assertFalse()

Vérification des erreurs

Il existe également un test d'erreur, et vous pouvez écrire le modèle d'erreur concrètement en écrivant comme suit. (Celui de la page officielle publiée ci-dessous est affiché tel quel)

s = 'hello world'
self.assertEqual(s.split(), ['hello', 'world'])
with self.assertRaises(TypeError):
    s.split(2)

Document officiel:

python3: https://docs.python.org/3/library/unittest.html python2.7: https://docs.python.org/2.7/library/unittest.html

À propos de Jenkins

Qu'est-ce que Jenkins

https://jenkins.io/ jenkins est bien connu comme un outil CI (Continuous Integration). Qu'est-ce qu'une "intégration continue" rien qu'en regardant cela? Peut être mais

Wikipedia:

http://e-words.jp/w/%E7%B6%99%E7%B6%9A%E7%9A%84%E3%82%A4%E3%83%B3%E3%83%86%E3%82%B0%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3.html :

En d'autres termes, pour le dire simplement, c'est comme ** passer continuellement des tests **. (Parce que l'auteur ne le comprend pas complètement)

L'image est quelque chose comme "automatiquement, vous pouvez vérifier que le test a réussi régulièrement".

Concernant l'introduction de Jenkins

Voir d'autres pages car nous ne couvrirons pas cette fois: https://appkitbox.com/knowledge/test/20121112-116

Créer un nouvel élément

Définir comme Bitbucket a Repo

  1. Définissez le dépôt git sur bitbucket et enregistrez également la clé SSH PubKey dans Bitbucket.
  2. Cochez Build lorsqu'une modification est envoyée à BitBucket.

paramètre de version de python

Si vous n'avez pas le wrapper de compilation pyenv, installez-le sur Jenkins

  1. Sélectionnez le wrapper de construction pyenv dans l'environnement de construction et définissez 3.4.1 cette fois
  2. Écrivez la bibliothèque requise dans la liste des pip préinstallés. Exemple: numpy, pyyaml, pandas

Définissez ce qui fonctionne dans le test

Écrivez les paramètres de variables et les commandes nécessaires pour vous déplacer avec le shell d'exécution de Build. (Ce qui suit peut être inclus, mais ...)

PYENV_HOME=$WORKSPACE/.pyenv/
export PYTHONPATH=$WORKSPACE:"$(dirname "$WORKSPACE")"
python setup.py test

C'est tout. Après cela, enregistrez vos modifications, construisez et assurez-vous que c'est un succès.

Si le test échoue,

À partir du numéro de tâche, si vous regardez la console de sortie, vous pouvez voir l'erreur comme un terminal normal.

Recommended Posts

Définir le test python dans jenkins
Configurez un serveur SMTP de test en Python.
Algorithme en Python (jugement premier)
Ecrire le code de test du sélénium en python
Quadtree en Python --2
Python en optimisation
CURL en Python
Opération d'ensemble Python
Métaprogrammation avec Python
Python 3.3 avec Anaconda
SendKeys en Python
Test de stress avec Locust écrit en Python
Ecrire le test dans la docstring python
Opération d'ensemble Python
Pour définir le codage par défaut sur utf-8 en python
Époque en Python
Discord en Python
Allemand en Python
DCI en Python
tri rapide en python
Associez l'ensemble de tables dans les modèles de python.py
nCr en python
N-Gram en Python
Programmation avec Python
Constante en Python
Test d'intégrité Python
FizzBuzz en Python
Sqlite en Python
Étape AIC en Python
LINE-Bot [0] en Python
CSV en Python
Assemblage inversé avec Python
Réflexion en Python
Constante en Python
nCr en Python.
Scons en Python 3
Puyopuyo en python
python dans virtualenv
PPAP en Python
Quad-tree en Python
Réflexion en Python
Chimie avec Python
DirectLiNGAM en Python
LiNGAM en Python
Aplatir en Python
Aplatir en python
Configurer un serveur HTTPS simple avec Python 3
Créez un environnement de test Vim + Python en 1 minute
Je veux faire le test de Dunnett en Python
Distribution de probabilité de niveau 2 du test statistique apprise en Python ②
Énumération des nombres premiers et jugement des nombres premiers en Python
Configurer un serveur SMTP simple en Python
Distribution de probabilité de test statistique de niveau 2 apprise en Python
Liste triée en Python
AtCoder # 36 quotidien avec Python
Texte de cluster en Python
AtCoder # 2 tous les jours avec Python