{"id":174885,"date":"2026-02-18T14:34:56","date_gmt":"2026-02-18T13:34:56","guid":{"rendered":"https:\/\/liora.io\/de\/?p=174885"},"modified":"2026-02-18T15:28:00","modified_gmt":"2026-02-18T14:28:00","slug":"python-pytest-anleitung-zur-anwendung","status":"publish","type":"post","link":"https:\/\/liora.io\/de\/python-pytest-anleitung-zur-anwendung","title":{"rendered":"Python Pytest: Anleitung zur Anwendung"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\" id=\"h-python-pytest-aus-welchen-grunden-sollte-man-seinen-code-testen\">Python Pytest: Aus welchen Gr\u00fcnden sollte man seinen Code testen?<\/h2>\n\n\n\n<p>In einem fr\u00fcheren Artikel haben wir gesehen, warum Unit-Tests f\u00fcr die Qualit\u00e4t und das Funktionieren eines Codes von grundlegender Bedeutung sind.<\/p>\n\n\n\n<p>Zur Erinnerung: Mit <a href=\"https:\/\/liora.io\/de\/unit-tests-in-der-datenanalyse\">Unit-Tests<\/a> k\u00f6nnen verschiedene Teile eines Codes isoliert getestet werden, im Gegensatz zu Integrationstests, die das Funktionieren des Codes als Ganzes \u00fcberpr\u00fcfen. Sie unterscheiden sich auch von <strong>Funktionstests (functional testing)<\/strong>, die das Funktionieren einer bestimmten Funktion sicherstellen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-warum-sollte-man-den-python-pytest-framework-verwenden-um-seinen-code-zu-testen\">Warum sollte man den Python Pytest Framework verwenden, um seinen Code zu testen?<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><img decoding=\"async\" width=\"1024\" height=\"572\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2026\/02\/code-python-tests-bildschirmanzeige-1024x572.jpg\" alt=\"code_python_tests_Bildschirmanzeige.jpg\" class=\"wp-image-218007\" srcset=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2026\/02\/code-python-tests-bildschirmanzeige-1024x572.jpg 1024w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2026\/02\/code-python-tests-bildschirmanzeige-300x167.jpg 300w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2026\/02\/code-python-tests-bildschirmanzeige-768x429.jpg 768w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2026\/02\/code-python-tests-bildschirmanzeige-1536x857.jpg 1536w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2026\/02\/code-python-tests-bildschirmanzeige-2048x1143.jpg 2048w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2026\/02\/code-python-tests-bildschirmanzeige-440x246.jpg 440w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2026\/02\/code-python-tests-bildschirmanzeige-785x438.jpg 785w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2026\/02\/code-python-tests-bildschirmanzeige-210x117.jpg 210w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2026\/02\/code-python-tests-bildschirmanzeige-115x64.jpg 115w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Um die Automatisierung von Unit-Tests zu erleichtern, kann man <a href=\"https:\/\/liora.io\/de\/was-ist-ein-framework\">Testing-Frameworks<\/a> verwenden, die das Schreiben von Tests standardisieren, fehlgeschlagene Tests schnell identifizieren und die Wartung erleichtern.<\/p>\n\n\n\n<p>In Python gibt es verschiedene Test-Frameworks, von denen die bekanntesten <strong>Unittest und Pytest<\/strong> sind. Heute konzentrieren wir uns auf die Implementierung von Unit-Tests mit Pytest, das etwas einfacher zu erlernen ist.<\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"wie-verwendet-man-python-pytest\">Wie verwendet man Python Pytest ?<\/h2>\n\n\n\n<p>Als Erstes musst du die <strong>Pytest-Bibliothek<\/strong> mit dem Befehl pip install pytest installieren.<\/p>\n\n\n\n<p>In einem Ordner erstellen wir die <strong>Datei student.py.<\/strong> Darin erstellen wir eine Klasse Student, die es uns erm\u00f6glicht, Sch\u00fclerinstanzen zu erstellen, ihre Noten zu speichern und ihren Durchschnitt zu berechnen.<\/p>\n\n\n\n<p>Im selben Ordner erstellen wir eine Testdatei student_test.py. Die Namen der Testdateien sollten im Format <em>&#8222;test_dateiname.py&#8220; oder &#8222;test_dateiname.py&#8220;<\/em> geschrieben werden. In der Datei muss jeder Test durch eine Funktion mit dem Pr\u00e4fix &#8222;test&#8220; definiert werden.<\/p>\n\n\n\n<p>Mit<strong> assert statements<\/strong> kannst du \u00fcberpr\u00fcfen, ob die Funktion f\u00fcr gegebene Argumente ein korrektes Ergebnis zur\u00fcckgibt und eine Exception werfen, wenn die Bedingung falsch ist. In unserem Beispiel \u00fcberpr\u00fcfen die ersten beiden Funktionen die Eigenschaften (grades, academic average) eines Objekts vom Typ Student bei seiner Instanziierung und dann den Wert des Durchschnitts, nachdem eine Note von 12 hinzugef\u00fcgt wurde.<\/p>\n\n\n\n<p>Wenn die Testdateien mit dem richtigen Pr\u00e4fix versehen sind, reicht es aus, den Befehl python -m pytest in deinem Terminal auszuf\u00fchren, um die Tests zu starten. Um einen bestimmten Test zu starten, f\u00fchre den Befehl <strong>python -m pytest Name_der_Datei.py aus.<\/strong><\/p>\n\n\n\n<p>Nach der Ausf\u00fchrung liefert Python Pytest einen detaillierten Bericht \u00fcber die Tests.<\/p>\n\n\n\n<p>Die &#8222;collected items&#8220; entsprechen der Anzahl der Tests, die durchgef\u00fchrt werden. Hier wurden alle drei Tests durchgef\u00fchrt.<\/p>\n\n\n\n<p>Wir \u00e4ndern vor\u00fcbergehend unsere Datei student.py so, dass ein Sch\u00fcler bei seiner<strong> Instanziierung<\/strong> standardm\u00e4\u00dfig eine Note von 10 erhalten hat.<\/p>\n\n\n\n<p>In unserer Datei student_test.py maskieren wir die ersten beiden Testfunktionen, um nur die Funktion test_add_grades zu behalten, und f\u00fchren dann die Testdatei aus.<\/p>\n\n\n\n<p>Wir stellen fest, dass der Test nicht mehr funktioniert, weil die \u00c4nderungen in unserer Datei student.py die Behauptung falsch machen. Mit Pytest k\u00f6nnen wir also sehen, ob \u00c4nderungen an einem Code das erwartete Ergebnis beeinflussen oder nicht.<\/p>\n\n\n\n<p><em>NB: Wir m\u00fcssen die init-Funktion von student.py \u00e4ndern, um bei der Instanziierung wieder eine leere Liste zu erhalten.<\/em><\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"vermeide-wiederholungen-mit-pytest-fixtures\">Vermeide Wiederholungen mit <i>pytest fixtures<\/i>.<\/h3>\n\n\n\n<p>Im vorherigen Beispiel haben wir in jedem Test ein Objekt vom Typ Student instanziiert. Um zu vermeiden, dass Code, der in mehreren Tests verwendet wird, neu geschrieben werden muss, verf\u00fcgt Pytest \u00fcber einen speziellen Dekorator namens fixture, der es erm\u00f6glicht, leicht auf die Elemente zuzugreifen, die f\u00fcr die Ausf\u00fchrung eines Tests ben\u00f6tigt werden, wie z. B. Daten.<\/p>\n\n\n\n<p>Um anzugeben, dass eine Funktion eine Fixture ist, musst du den <a href=\"https:\/\/liora.io\/de\/python-fuer-fortgeschrittene\">@pytest.fixture-Dekorator<\/a> verwenden, bevor du sie definierst. Au\u00dferdem musst du die Fixture als Argument in den Testfunktionen \u00fcbergeben, in denen du sie aufrufen willst.<\/p>\n\n\n\n<p>In diesem Beispiel erspart uns die Fixture, dass wir das Sch\u00fclerobjekt in jedem Test neu instanziieren m\u00fcssen.<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"der-dekorateur-parametrize-tests-zum-testen-einer-folge-von-anweisungen\">Der Dekorateur <i>parametrize tests<\/i> zum Testen einer Folge von Anweisungen.<\/h3>\n\n\n\n<p>Die Parametrisierung erm\u00f6glicht es, denselben Test mit verschiedenen Werten auszuf\u00fchren. Dazu verwenden wir den <strong>Dekorator @pytest.mark.parametrize<\/strong>. Du musst den Namen der zu testenden Argumente und ihren Wert angeben.<\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"fazit\">Fazit<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><img decoding=\"async\" width=\"1024\" height=\"572\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2026\/02\/code-python-test-schueler-1024x572.jpg\" alt=\"code_python_test_schueler.jpg\" class=\"wp-image-218008\" srcset=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2026\/02\/code-python-test-schueler-1024x572.jpg 1024w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2026\/02\/code-python-test-schueler-300x167.jpg 300w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2026\/02\/code-python-test-schueler-768x429.jpg 768w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2026\/02\/code-python-test-schueler-1536x857.jpg 1536w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2026\/02\/code-python-test-schueler-2048x1143.jpg 2048w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2026\/02\/code-python-test-schueler-440x246.jpg 440w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2026\/02\/code-python-test-schueler-785x438.jpg 785w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2026\/02\/code-python-test-schueler-210x117.jpg 210w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2026\/02\/code-python-test-schueler-115x64.jpg 115w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>In diesem Artikel haben wir uns mit der Verwendung von Pytest zum Testen von<strong> Code<\/strong> vertraut gemacht.<\/p>\n\n\n\n<p>Als <a href=\"https:\/\/liora.io\/de\/weiterbildung-data-engineer\">Data Engineer<\/a> oder <a href=\"https:\/\/liora.io\/de\/weiterbildung-data-scientist\">Data Scientist<\/a> ist die Durchf\u00fchrung von Unit-Tests ein notwendiger Schritt, um die Qualit\u00e4t eines Codes zu gew\u00e4hrleisten und Probleme bei der Bereitstellung zu reduzieren.<\/p>\n\n\n\n<p>Es muss jedoch daran erinnert werden, dass dieser Schritt nicht ausreichend ist. Einerseits k\u00f6nnen bei der Entwicklung einer <a href=\"https:\/\/liora.io\/de\/underfitting-in-machine-learning-so-loest-du-es\">Machine-Learning-Anwendung<\/a> einige Elemente durch die Maschen des Netzes fallen. Au\u00dferdem k\u00f6nnen Unit-Tests per Definition nicht die Interaktion zwischen den Einheiten testen.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex is-content-justification-center\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/liora.io\/de\/weiterbildung\">Unsere Weiterbildungen<\/a><\/div>\n<\/div>\n\n\n\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Warum sollte man seinen Code testen?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Tests sind entscheidend f\u00fcr die Qualit\u00e4t und das reibungslose Funktionieren des Codes. Unit-Tests isolieren Teile des Codes, um sicherzustellen, dass jeder Abschnitt korrekt funktioniert.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Warum sollte man das Python Pytest Framework verwenden?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Pytest erleichtert das Schreiben von Tests, hilft bei der schnellen Identifizierung von fehlerhaften Tests und vereinfacht die Wartung durch standardisierte Tests.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Wie verwendet man Python Pytest?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Installiere Pytest mit dem Befehl 'pip install pytest'. Erstelle Testdateien im Format 'test_dateiname.py' und benutze 'assert' zur \u00dcberpr\u00fcfung von Ergebnissen. F\u00fchre Tests mit dem Befehl 'python -m pytest' aus.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Wie vermeide ich Wiederholungen mit Pytest Fixtures?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Fixtures in Pytest helfen dabei, wiederverwendbare Setup- und TearDown-Funktionen zu erstellen, die in mehreren Tests genutzt werden k\u00f6nnen, um Code zu vereinfachen und Wiederholungen zu vermeiden.\"\n      }\n    }\n  ]\n}\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>Python Pytest: Aus welchen Gr\u00fcnden sollte man seinen Code testen? In einem fr\u00fcheren Artikel haben wir gesehen, warum Unit-Tests f\u00fcr die Qualit\u00e4t und das Funktionieren eines Codes von grundlegender Bedeutung sind. Zur Erinnerung: Mit Unit-Tests k\u00f6nnen verschiedene Teile eines Codes isoliert getestet werden, im Gegensatz zu Integrationstests, die das Funktionieren des Codes als Ganzes \u00fcberpr\u00fcfen. [&hellip;]<\/p>\n","protected":false},"author":47,"featured_media":218219,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"editor_notices":[],"footnotes":""},"categories":[2476],"class_list":["post-174885","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud-dev"],"acf":[],"_links":{"self":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/174885","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/users\/47"}],"replies":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/comments?post=174885"}],"version-history":[{"count":5,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/174885\/revisions"}],"predecessor-version":[{"id":218240,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/174885\/revisions\/218240"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/media\/218219"}],"wp:attachment":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/media?parent=174885"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/categories?post=174885"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}