Kurs · Schulung · Workshop
Testen mit pytest
Dreitägiger Deep-Dive ins pytest-Framework, um Software-Testing zu vereinfachen: Vom ersten Test über Fixtures, Mocking, bis zum Verfassen von eigenen Plugins.
Automatisiertes Testen gehört zu den wichtigsten Zutaten für qualitativen Code - trotzdem wird es oft vernachlässigt oder als lästige Pflicht angesehen. Mit pytest wird vieles einfacher: Tests lassen sich damit in Python sehr flexibel und unkompliziert implementieren. Das Framework lässt sich hervorragend an eigene Zwecke anpassen oder sogar als Grundlage zum Testing ausserhalb von Python verwenden.
Trainer
Stimmen unserer Teilnehmer:innen






Diese Kunden haben Kurse im gleichen Themen-Cluster bei uns gebucht.Mehr Kunden →
Inhalt
Dieser Kurs bietet eine Einführung in das pytest-Framework mit zahlreichen Übungen und Beispielen. Wir starten mit den Grundlagen und arbeiten uns durch die verschiedenen Features, die pytest bietet. Dabei machen wir aber auch keinen Halt vor fortgeschrittenen Themen wie Fixtures, Mocking oder Plugins.
Folgende Fragen - und noch viele mehr - werden in diesem Kurs von einem der pytest-Hauptentwickler beantwortet:
- Einleitung und Terminologie: Warum schreiben wir Tests? Warum pytest? Welche Arten von Tests gibt es?
- Erste Schritte und Assertions: Wie schreibe ich meinen ersten Test? Wie überprüfe ich, ob mein Code das tut, was er soll?
- Konfiguration und CLI: Wie führe ich Tests aus und wie kann ich das Verhalten von pytest beeinflussen?
- Tests organisieren: Wie strukturiere ich meine Tests? Wie kategorisiere ich sie mit Markern?
- Parameterisierung: Wie kann ich denselben Test mit verschiedenen Datensätzen ausführen?
- Fixtures: Wie kann ich Testdaten oder Objekte vorbereiten und wiederverwenden? Wie vermeide ich Code-Duplikation für Setup- und Teardown-Code? Welche Funktionalität liefert pytest in Form von eingebauten Fixtures bereits mit? Wie kann ich Caching und Parametrisierung von Fixtures nutzen?
- Migration: Wie migriere ich von einem anderen Python Test-Framework zu pytest?
- Mocking: Wie gehe ich mit stark gekoppelten Komponenten oder externen Abhängigkeiten um? Welche Werkzeuge und Alternativen gibt es fürs Mocking und Patching?
- Hypothesis: Wie kann ich mit generativen Tests die Testabdeckung erhöhen? Wie schreibe ich eigene Strategien? Wo liegen die Grenzen vom “Property-based testing”?
- Plugin-Tour: Was können pytest-Plugins? Wie sieht das Ökosystem rund um pytest aus?
- Eigene Plugins: Wie kann ich pytest an meine Bedürfnisse anpassen? Wie implementiere ich eigene Plugin-Hooks? Wie veröffentliche ich ein Plugin?
Der effektive Kursinhalt kann, abhängig von Trainer, Durchführung, Dauer und Konstellation der Teilnehmer:innen, von obigen Angaben abweichen.
In-House Kurs anfragen
Öffentlichen Termin anfragen
Kein passender öffentlicher Termin dabei? Trag dich unverbindlich ein – sobald genug Interesse besteht, planen wir einen neuen öffentlichen Termin und informieren dich zuerst.
Mehr über pytest
pytest ist ein leistungsstarkes Python-Testing-Framework, das sich durch seine einfache Syntax und hohe Erweiterbarkeit auszeichnet. Es unterstützt sowohl einfache Unit-Tests als auch komplexe funktionale Tests und bietet ein umfangreiches Plugin-System.Weitere Ressourcen:
History
pytest wurde ursprünglich von Holger Krekel entwickelt und 2004 als 'py.test' veröffentlicht. Es entstand aus der Notwendigkeit, ein einfacheres und flexibleres Testing-Framework als das in Python eingebaute unittest zu schaffen, das von JUnit inspiriert war.
Die Entwicklung wurde massgeblich von der Python-Testing-Community vorangetrieben, mit wichtigen Beiträgen von Ronny Pfannschmidt und Bruno Oliveira. Ein bedeutender Meilenstein war die Einführung des Fixture-Systems in Version 2.0, das die Art und Weise, wie Testumgebungen aufgebaut werden, revolutionierte.
Heute ist pytest das meistgenutzte Testing-Framework in der Python-Welt und wird von Projekten wie Mozilla, Dropbox und Kubernetes verwendet. Es hat nicht nur die Art und Weise verändert, wie Python-Entwickler Tests schreiben, sondern auch neue Standards für Test-Frameworks in anderen Sprachen gesetzt. Die Integration mit Tools wie Hypothesis für Property-Based Testing und die breite Plugin-Unterstützung machen es zu einem unverzichtbaren Werkzeug in der modernen Python-Entwicklung.
