Das Repository enthält Übungsprojekte für die Praktikumsaufgabe zu GitHub Actions Teil 10 - Aufgabe 2 - Unit-Tests im Fach Software Engineering II.
Enthalten ist jeweils eine simple Anwendung in Java (Maven, JUnit) und
Python (unittest), bestehend aus einer Town
- und TestTown
-Klasse.
Diese sind dem Praktikum zu Unit-Test mit Java und Python entnommen.
Warning
Ein Test schlägt bewusst fehl, da dieser im Zuge der Aufgabenbearbeitung mit angepasst wird.
Es liegt jeweils ein Beispielprojekte in Java und in Python vor:
├── example-java
└── example-python
Für jedes Projekt werden im Laufe der Bearbeitung der Aufgaben die zugehörigen
GitHub Action Workflows im Verzeichnis .github/workflows/
abgelegt.
example-java
├── pom.xml
└── src
├── main
│ └── java
│ └── example
│ ├── Main.java
│ └── Town.java
└── test
└── java
└── example
├── TestMain.java
└── TestTown.java
Datei | Beschreibung |
---|---|
pom.xml |
Beschreibung des Maven-Projektes im XML-Format |
Main.java |
Klasse Main für die main() Methode |
Town.java |
Klasse Town für eine Stadt mit Name (name ) und Einwohneranzahl (residents ) und zugehörigen Methoden |
TestMain.java |
Klasse TestMain mit beispielhaften Unit-Tests zum Testen der Main -Klasse |
TestTown.java |
Klasse TestTown mit beispielhaften Unit-Tests zum Testen der Town -Klasse |
Für eine lokale Ausführung der Tests mit Maven wird eine Maven Installation benötigt (für das Praktikum nicht notwendig).
Folgend ein paar hilfreiche Kommandos (vorher ggf. cd example-java
):
-
Version anzeigen:
% mvn --version
-
Bereinigt die von Maven während des Builds generierten Dateien und Verzeichnisse (bspw. das target-Verzeichnis):
% mvn clean
-
Führt alle oder ausgewählte Test-Klassen aus:
% mvn test $ mvn clean test % mvn -Dtest=TestTown test
-
Kompiliert und Erstellt ein Paket (bspw. JAR-Datei) aus den Quellcodedateien:
% mvn package
-
Ausführen der erstellten JAR-Datei:
% java -cp target/example-1.0-SNAPSHOT.jar example.Main The town Dresden has 556780 residents. Town('Dresden', 556780) Dresden -1
example-python
├── main
│ ├── __init__.py
│ ├── main.py
│ └── town.py
└── tests
├── __init__.py
└── test_town.py
Datei | Beschreibung |
---|---|
__init__.py |
Markiert das Verzeichnis als Paket (regular package) mit zugehörigem Namensraum (namespace) |
main.py |
Klasse Main für die main() Methode |
town.py |
Klasse Town für eine Stadt mit Name (name ) und Einwohneranzahl (residents ) und zugehörigen Methoden |
test_town.py |
Klasse TestTown mit beispielhaften Unit-Tests zum Testen der Town -Klasse |
Folgend ein paar hilfreiche Kommandos (vorher ggf. cd example-python
):
-
Version anzeigen:
% python3 --version
-
Führt ausgewählte Tests, Test-Klassen/-Methoden aus:
% python3 -m unittest tests.test_town % python3 -m unittest tests.test_town.TestTown % python3 -m unittest tests.test_town.TestTown.testTownValues
-
Führt Tests aller oder ausgewählter Pakete/Dateien aus:
% python3 -m unittest discover % python3 -m unittest discover tests % python3 -m unittest discover tests "test_*.py"
-
Ausführen mit:
% python3 main/main.py The town Dresden has 556780 residents. Town('Dresden', 556780) Dresden -1