Stellen Sie den Python-Test in Jenkins ein

In Bezug auf unittest

Vorbereitung

Installieren Sie unittest. (Python-Einstellungen werden weggelassen)

pip install unittest

unittest Beispiel:

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()

Ausführungsergebnis


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

OK

Der einzige Punkt, den ich unterdrücken möchte:

  1. Methoden, die mit test_ beginnen, werden getestet. (Im obigen Beispiel wird this_is_ignored nicht aufgerufen, es werden 2 Tests ausgeführt.)
  2. setUp und tearDown werden jeweils vor der Testmethode (test_ <..>) aufgerufen. (Es gibt Start und Ende aus, um das Verständnis beim Aufrufen zu erleichtern.)
  3. Dieses Mal habe ich "self.assertEqual ()" verwendet, um zu überprüfen, ob die beiden gleich sind, aber es gibt viele andere. Verwenden Sie also die entsprechende.

Wie zu testen

Basic:

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

Fehlerüberprüfung

Es gibt auch einen Fehlertest, und Sie können das Fehlermuster konkret schreiben, indem Sie wie folgt schreiben. (Die auf der offiziellen Seite unten ist so veröffentlicht, wie sie ist)

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

Offizielles Dokument:

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

Über Jenkins

Was ist Jenkins?

https://jenkins.io/ Jenkins ist als CI-Tool (Continuous Integration) bekannt. Was ist "kontinuierliche Integration", wenn man sich das nur ansieht? Vielleicht aber

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 :

Mit anderen Worten, wenn Sie einfach darüber nachdenken, ist es, als würden Sie ** kontinuierlich Tests durchlaufen **. (Weil der Autor es nicht vollständig versteht)

Das Bild ist so etwas wie "automatisch können Sie überprüfen, ob der Test regelmäßig bestanden wurde".

In Bezug auf die Einführung von Jenkins

Siehe andere Seiten, da wir diesmal nicht darauf eingehen: https://appkitbox.com/knowledge/test/20121112-116

Erstelle einen neuen Gegenstand

Als Bitbucket eingestellt hat Repo

  1. Setzen Sie das Git Repo auf Bitbucket und registrieren Sie den SSH PubKey auch in Bitbucket.
  2. Aktivieren Sie Build, wenn eine Änderung an BitBucket gesendet wird.

Python-Versionseinstellung

Wenn Sie den Pyenv Build Wrapper nicht haben, installieren Sie ihn auf Jenkins

  1. Wählen Sie in der Build-Umgebung den pyenv-Build-Wrapper aus und legen Sie diesmal 3.4.1 fest
  2. Schreiben Sie die erforderliche Bibliothek in die Pip-Liste vor der Installation. Beispiel: numpy, pyyaml, pandas

Stellen Sie ein, was im Test funktioniert

Schreiben Sie die erforderlichen Variableneinstellungen und Befehle, um mit der Execute-Shell von Build zu verschieben. (Folgendes kann enthalten sein, aber ...)

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

Das ist es. Speichern Sie danach Ihre Änderungen, erstellen Sie sie und stellen Sie sicher, dass sie erfolgreich sind.

Wenn der Test fehlschlägt,

Wenn Sie sich die Ausgabekonsole ansehen, sehen Sie unter der Auftragsnummer den Fehler wie bei einem normalen Terminal.

Recommended Posts

Stellen Sie den Python-Test in Jenkins ein
Richten Sie einen Test-SMTP-Server in Python ein.
Algorithmus in Python (Haupturteil)
Schreiben Sie Selentestcode in Python
Quadtree in Python --2
Python in der Optimierung
CURL in Python
Python-Set-Operation
Metaprogrammierung mit Python
Python 3.3 mit Anaconda
SendKeys in Python
Stresstest mit Locust in Python geschrieben
Schreiben Sie den Test in die Python-Dokumentzeichenfolge
Python-Set-Operation
So setzen Sie die Standardcodierung in Python auf utf-8
Epoche in Python
Zwietracht in Python
Deutsch in Python
DCI in Python
Quicksort in Python
Ordnen Sie die in pythons models.py festgelegte Tabelle zu
nCr in Python
N-Gramm in Python
Programmieren mit Python
Konstante in Python
Python-Integritätstest
FizzBuzz in Python
SQLite in Python
Schritt AIC in Python
LINE-Bot [0] in Python
CSV in Python
Reverse Assembler mit Python
Reflexion in Python
Konstante in Python
nCr in Python.
Scons in Python 3
Puyopuyo in Python
Python in Virtualenv
PPAP in Python
Quad-Tree in Python
Reflexion in Python
Chemie mit Python
DirectLiNGAM in Python
LiNGAM in Python
In Python reduzieren
In Python flach drücken
Richten Sie mit Python 3 einen einfachen HTTPS-Server ein
Erstellen Sie in 1 Minute eine Vim + Python-Testumgebung
Ich möchte Dunnetts Test in Python machen
In Python ② erlernte statistische Wahrscheinlichkeitsverteilung für Testgrad 2
Primzahlaufzählung und Primzahlbeurteilung in Python
Richten Sie einen einfachen SMTP-Server in Python ein
In Python ① erlernte statistische Wahrscheinlichkeitsverteilung für Testgrad 2
Sortierte Liste in Python
Täglicher AtCoder # 36 mit Python
Clustertext in Python
AtCoder # 2 jeden Tag mit Python