Skip to content

tigion/htwd-se-practical-github-actions-exercise

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HTWD | Übung: GitHub Actions mit Unit-Tests

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.

Hinweise

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

Projektstruktur

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

Hinweise zu Java mit Maven

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

Projektstruktur

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

Hinweise zu Python mit Unittest

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

About

Übungsprojekt zu GitHub Actions mit Unit-Tests

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published