Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
| talit:python_testing [2024-03-04 14:26] – hof | talit:python_testing [2024-03-04 14:38] (aktuell) – [Pytest] hof | ||
|---|---|---|---|
| Zeile 45: | Zeile 45: | ||
| #### Aufgabe A | #### Aufgabe A | ||
| Schreibe einen Test-Case für den rapportierten Fehler. Flicke anschliessend die `is_sorted` Funktion, bis alle Tests wieder durchlaufen. | Schreibe einen Test-Case für den rapportierten Fehler. Flicke anschliessend die `is_sorted` Funktion, bis alle Tests wieder durchlaufen. | ||
| - | |||
| ### Pytest | ### Pytest | ||
| Um in grösseren Projekten nicht den Überblick zu verlieren, ist es Usus, ein Test-Framework zu verwenden, um alle Tests im Projekt auszuführen. Die beste Wahl für Python ist [[https:// | Um in grösseren Projekten nicht den Überblick zu verlieren, ist es Usus, ein Test-Framework zu verwenden, um alle Tests im Projekt auszuführen. Die beste Wahl für Python ist [[https:// | ||
| Zeile 51: | Zeile 50: | ||
| Installation: | Installation: | ||
| - | Pytest sucht überall im Ordner nach Dateien, die mit `test_` beginnen, und führt darin alle Funktionen aus, die mit dem gleichen Präfix `test_` anfangen | + | Pytest sucht überall im Ordner nach Dateien, die mit `test_` beginnen, und führt darin alle Funktionen aus, die mit dem gleichen Präfix `test_` anfangen. |
| Wir müssen dafür also unseren Test leicht verändern: | Wir müssen dafür also unseren Test leicht verändern: | ||
| Zeile 67: | Zeile 66: | ||
| </ | </ | ||
| + | Die Ausführung von `pytest` findet die Datei und die zwei Testfunktionen und fasst die Resultate zusammen: | ||
| + | |||
| + | <code bash> | ||
| + | $ pytest | ||
| + | ============================================= test session starts ============================================== | ||
| + | platform darwin -- Python 3.11.7, pytest-8.1.0, | ||
| + | rootdir: / | ||
| + | collected 2 items | ||
| + | |||
| + | test_sorted.py .. [100%] | ||
| + | |||
| + | ============================================== 2 passed in 0.00s =============================================== | ||
| + | </ | ||
| + | |||
| + | Pytest wird auch von VSCode unterstützt (ev. muss in der Sidebar die _Tests_-Ansicht geöffnet werden: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | #### Aufgabe B | ||
| + | Ändere deinen Unit-Test, damit er von pytest gefunden wird, und führe die Tests im Terminal und auch in VSCode aus. | ||
| ## Integration Tests | ## Integration Tests | ||