Modius - Techblog

  • Ansible
  • Docker
  • DevOps
  • Gastautor werden
  • Newsletter abonnieren
  • Über Mich
  • Kontakt

Python Code mit PyTest testen

Veröffentlicht am 5. Januar 2021 von Modius Hinterlasse ein Kommentar , Aktualisiert am 5. Januar 2021
Geschätzte Lesezeit: 58 Sekunden

Das schreiben von Tests sollte für jeden der programmiert dazugehören und ist wichtig um die Qualität des Codes bzw. der Software gewährleisten zu können. Hier bringt jede Programmiersprache eigene Tools mit. Da Ich viel mit Python entwickle verwende ich das PyTest Package.

Um PyTest zu installieren, kann einfach der folgende Befehl verwendet werden:

1
pip install -U pytest

Zum Testen lege ich mir eine Datei test_pytest.py an. In diese Datei legen wir als erstes eine Funktion zur Berechnung des Quadrates einer Zahl an.

1
2
def square(number):
  return number * number

Anschließend wird eine Test-Funktion erstellt.

1
2
3
4
5
6
def test_square():
    assert square(3) == 9
    assert square(-2) == 4
    assert square(2) != 5
    assert square(0) == 0
    assert square(1) == 1

Ich versuche innerhalb einer Testfunktion immer möglichst viele unterschiedliche Fälle abzufangen. Im Falle des Quadrates sind zumindest die ersten beiden Fälle wichtig.

Will man den Test ausführen, kann man einfach pytest im Terminal eingeben. PyTest ruft dann automatisch alle Dateien auf, die mit test_ beginnen. Das ganze sieht auf dem Terminal dann wie folgt aus:

1
2
3
4
5
6
7
8
9
10
pytest
====================================================================================== test session starts =======================================================================================
platform darwin -- Python 3.8.5, pytest-6.2.1, py-1.9.0, pluggy-0.13.1
rootdir: /Users/Christian/development/Sandbox
collected 1 item                                                                                                                                                                                
 
test_pytest.py .                                                                                                                                                                           [100%]
 
======================================================================================= 1 passed in 0.01s ========================================================================================
(Sandbox)

Um einmal zu zeigen, wie das ganze aussieht wenn die Tests nicht erfolgreich sind, ändere ich die Testfunktion damit diese einen Fehler beinhaltet.

1
2
3
4
5
6
def test_square():
    assert square(3) == 8
    assert square(-2) == 4
    assert square(2) != 5
    assert square(0) == 0
    assert square(1) == 1

Führt man das ganze jetzt aus, dann wird ein Fehler zurückgegeben.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
pytest
====================================================================================== test session starts =======================================================================================
platform darwin -- Python 3.8.5, pytest-6.2.1, py-1.9.0, pluggy-0.13.1
rootdir: /Users/Christian/development/Sandbox
collected 1 item                                                                                                                                                                                
 
test_pytest.py F                                                                                                                                                                           [100%]
 
============================================================================================ FAILURES ============================================================================================
__________________________________________________________________________________________ test_square ___________________________________________________________________________________________
 
    def test_square():
>       assert square(3) == 8
E       assert 9 == 8
E        +  where 9 = square(3)
 
test_pytest.py:9: AssertionError
==================================================================================== short test summary info =====================================================================================
FAILED test_pytest.py::test_square - assert 9 == 8
======================================================================================= 1 failed in 0.03s ========================================================================================
(Sandbox)
 

Hierbei handelt es sich jetzt nur um ein sehr einfaches Beispiel, aber nach diesem Prinzip lassen sich sowohl kleine wie auch große Projekte einfach und schnell mit Tests ausstatten.

Kategorie: Development, Programmierung Tags: PyTest, python, Test

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Kategorien

  • Linux
  • Internet, Bloggen & Co
  • Programmierung
  • Sicherheit
  • Netzwerk & Co
  • Mikrokontroller
  • Windows

Neueste Kommentare

  • Prometheus Installation unter Ubuntu - Modius - Techblog bei Prometheus Installation unter CentOS
  • Rainer bei Docker Container – anzeigen, starten, stoppen und löschen
  • Rainer Wohlfarth bei Docker Container – anzeigen, starten, stoppen und löschen
  • Rainer Wohlfarth bei Docker Container – anzeigen, starten, stoppen und löschen
  • Rainer Wohlfarth bei Docker Container – anzeigen, starten, stoppen und löschen

Werbung

Archive

Kontakt, Datenschutz und Impressum

  • Kontakt
  • Datenschutz
  • Impressum

Schlagwörter

Anleitung Ansible Apache Apple App Store Automatisierung Blogparade C++ Centos centos 7 CentOS7 Container Datenbank DevOps Docker Dr. Racket Dr. Scheme funktional Gastartikel Google HowTo httpd Icinga2 Icinga 2 Installation itsm Linux Minecraft Monitoring mooc MySQL owncloud PHP Plugin Programmierung python Raspberry Pi Schritt für Schritt Server Sicherheit Tutorial Ubuntu Update Windows Wordpress

Copyright © 2025 · Outreach Pro on Genesis Framework · WordPress · Anmelden