Erstelle ein JSON-Array mit allen Unittests in einem Python-Projekt.
Das Skript durchsucht ein Projekt nach Dateien, die Unittests enthalten.
Die Dateinamen müssen test_ oder _test enthalten.
Zum Beispiel:
Innerhalb dieser Dateien sucht das Skript nach Funktionen, deren Bezeichner mit test_ beginnt.
Die Bezeichner dieser Funktionen werden in eine Liste geschrieben.
Schlussendlich wird diese Liste sortiert und als JSON-Array ausgegeben.
[
"test_figure_init_empty",
"test_figure_add_shape",
"test_figure_add_shape_multiple",
"test_figure_take_shape",
"test_figure_remove_shape_by_title",
"test_figure_remove_shape_by_index",
"test_figure_total_area_scale1",
"test_figure_total_area_scale3",
"test_figureshape_init_empty",
"test_figureshape_set_figure",
"test_figureshape_set_shape",
"test_main"
]
Grundsätzlich könnte man die Aufgabe ausschliesslich mit Python lösen oder als reines Bash-Skript schreiben. Jede Sprache hat jedoch ihre Vorteile, die wir hier ausnutzen wollen:
setup.sh aus. Dieses erstellt einen Ordner und Dateien für die Tests.
In den folgenden Aufgaben werden Sie zunächst einzelne Teilschritte umsetzen und testen.
Zum Schluss schreiben Sie die main-Funktion um alle Teilfunktionen zu verbinden.
Siehe https://wiki.bzz.ch/modul/m122/learningunits/lu08/linux_python#virtual_environment
Das Python-Skript kann nicht unter Windows ausgeführt werden, da wir Bash-Befehle nutzen.
Um auf das Windows-Laufwerk C zuzugreifen, verwendest du im WSL den Pfad /mnt/c.
cd „/mnt/c/BZZ/Python/m122-lu08-a02-listtest-ghwalin“python3 main.py ORDNER_PFAD. Ersetze ORDNER_PFAD durch den Pfad zum gewünschten Projekt.
Um einen bestimmten Unittest durchzuführen, wird dieser im Terminal mit dem Befehl pytest aufgerufen.
pytest MODULE::FUNCTION
main_test.pytest_find_test_modulespytest main_test.py::test_find_test_modules pytest main_test.py