Dies ist eine alte Version des Dokuments!


LU09.A00: PyTests finden

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:

  • test_main.py
  • main_test.py

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:

  • Dateien durchsuchen: Hier spielt Bash seine Stärke aus
  • Arbeiten mit Collections: Dies lässt sich leichter in Python umsetzen.

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.

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.

  1. Öffne das Windows Subsystem for Linux (WSL).
  2. Wechsel in den Ordner, in dem Ihr Projekt gespeichert ist. Zum Beispiel: cd „/mnt/c/BZZ/Python/m122-lu08-a02-listtest-ghwalin“
  3. Starte das Python Skript mit python3 main.py ORDNER_PFAD. Ersetze ORDNER_PFAD durch den Pfad zum gewünschten Projekt.
  • modul/m122/learningunits/lu09/aufgaben/find_tests.1734338512.txt.gz
  • Zuletzt geändert: 2024/12/16 09:41
  • von msuter