Testen mit pyTest

Um die Abnahme der Lösungen bis zu einem gewissen Grad zu automatisieren existiert eine Testsuite. Diese Suite kann wahlweise über die Kommandozeile oder eine grafische Oberfläche bedient werden.Grundsätzlich können beide Varianten auf allen Betriebssystem verwendet werden.

Voraussetzungen

pyTest setzt zwingend eine lokale Python 2.7 Installation heraus. Python 3 funktioniert aufgrund von externen Abhängigkeiten bekanntermaßen nicht. Ferner existieren einige Fallstricke in Bezug auf die 64 Bit Version von Python, verwendet daher nach Möglichkeit eine 32 Bit Version. Die Installation der Python 2.7 Umgebung kann, je nach Betriebssystem, z.B. wie folgt vorgenommen werden.

  • Linux Distributionen können Python 2.7 sowie wxPython in der Regel über den Paketmanager installieren.
  • Unter Mac OSX ist in der Regel eine Python 2.7 Installation vorhanden, welche pyTest zumindestens ohne die grafische Oberfläche ausführen kann.
  • Für alle Platformen existiert mit Active State Python ein grafischer Installer, welcher auch die unten erwähnten Änderungen in der PATH Umgebungsvariable vornimmt.
  • Installer für Windows und Mac OS finden sich auf den offiziellen Seiten des Python Projekts. Dieser Installer erfordert noch eine manuelle Änderung an der Umgebungsvariable PATH. Wie das geht wird z.B. in diesem Video erklärt.
  • Solltet ihr die grafische Oberfläche benutzen wollen, installiert bitte nach der Installation von Python noch wxPython.

Konfiguration

Die Konfiguration der pyTest Umgebung benötigt den Pfad zum installierten MySQL Client. Dieser muss in der Konfigurationsdatei hinterlegt werden, sofern er nicht automatisch vom System gefunden werden kann. Dies ist in der Regel der Fall, wenn eine portable Version des MySQL Servers verwendet wird und betrifft damit auch das MySQL Paket, dass für diese Übung bereitgestellt wird.

Solltet ihr die bereitgestellte portable Version des MySQL Servers verwenden, entpackt das Archiv in den gleichen Ordner wie eure Testdaten. In dieser Konstellation ist keine weitere Konfiguration notwendig. Zum Vergleich: Es entsteht die folgende Ordnerstruktur:

 

Bedienung über die Kommandozeile

Unter allen Betriebssystemen können die Testfälle mittels der Kommandozeile geprüft werden. Öffnet dazu ein Terminal und navigiert in den Ordner, in dem pyTest und eure Lösungen zu finden sind. Dies kann in der Regel über das Kontextmenü des jeweiligen Dateimanagers geschehen:

  • Unter Windows muss während des Rechtsklicks auf einen Ordner die "Shift" Taste gehalten werden, das Menü bietet dann eine "Eingabeaufforderung hier öffnen" Option.
    • Die hier verfügbaren Befehle kännen nicht per Strg + V in das Konsolenfenster kopiert werden. Klickt stattdessen mit der rechten Maustaste auf die Fensterleiste und wählt in dem Kontextmneü unter "Bearbeiten" die Option "Einfügen".
  • Unter Mac OSX besteht eine ähnliche Option, die allerdings erst aktiviert werden muss.

In dem sich öffnen Fenster könnt ihr die folgenden Kommandos eingeben:

  • Um alle Queries auf einmal zu prüfen:
    • python pyTest-2.0-py2.7.egg --no-gui -o
  • Um die Query zu exakt einer Aufgabe zu prüfen, in diesem Beispiel Aufgabe 2.1
    • python dut.py 2 1

Diese Variante setzt voraus, dass die Python Umgebung in der Version 2.7 auf dem Rechner installiert und auffindbar ist. Unter Windows liefert das Programm dann Ausgaben ähnlich denen auf dem folgenden Screenshot: