Python Code testen mit tox als CI Pipeline Basis
Ich habe mit tox eine Python Testumgebung eingerichtet, die gleichzeitig als GitHub Workflow ausgeführt wird. Das Projekt dient als solide Basis für eine professionelle Continuous Integration Pipeline und stellt sicher, dass Tests, Linting und Coverage automatisiert bei jedem Commit und jeder Pull Request laufen. Die tox Konfiguration umfasst Testläufe für die geforderte Python Version, eine Coverage Auswertung und die Integration von Formatierungs und Stilprüfungen, sodass Codequalität und Funktionalität kontinuierlich überwacht werden.
Im Repository befindet sich eine CHANGELOG Datei mit der Versionshistorie. Version 0.2.0 wurde am 9. Februar 2024 veröffentlicht. Zu den hinzugefügten Änderungen gehören die zweite Version des Projekts, eine Coverage Konfiguration in tox.ini, gezielte Dateiausschlüsse in der .pre-commit-config.yaml um Git Warnungen zum Zeilenumbruch zu vermeiden sowie ein GitHub Workflow zur Automatisierung der Abläufe. Als Anpassungen wurden Abhängigkeiten auf feste Versionen für langfristigen Support gesetzt, die .flake8 Konfiguration in tox.ini zusammengeführt und die README um einen neuen Ausführungsbefehl für tox in Version 4 ergänzt. Veraltete Umgebungsvariablen wurden entfernt, um tox Version 4 zu unterstützen. Die minimale benötigte Python Version ist 3.12.0 oder neuer.
Im Repository finden sich außerdem ausführliche Anleitungen zur lokalen Einrichtung und zur Nutzung des Workflows. Dort ist beschrieben, wie man die Testumgebung mit tox startet, wie man lokale Checks mit den gleichen Einstellungen wie im Workflow ausführt und wie man die Coverage Berichte erzeugt und auswertet. Die Dokumentation enthält zudem Hinweise zur Anpassung der Abhängigkeitsversionen bei Bedarf sowie Beispiele für die Integration weiterer Prüfungen oder Deployment Schritte. Wenn gewünscht, kann ich eine Schritt für Schritt Anleitung erstellen, die den kompletten Einrichtungsprozess und typische Troubleshooting Schritte abdeckt.
https://github.com/DieSchoeneWolke/PythonExampleProject/