9 Projekte
Projekte schaffen einen besseren Überblick, vereinfachen die Navigation zwischen Testsuiten und bieten einen erweiterten Rahmen für Suchen und Ersetzen. Außerdem kümmert sich QF-Test automatisch um die durch Include-Beziehungen oder absolute Referenzen entstehenden Abhängigkeiten zwischen Testsuiten im gleichen Projekt (vgl. "Der Aufruf einer Prozedur in einer anderen Testsuite"). Viele weitere Funktionen sind bereits implementiert oder in Entwicklung.
Technisch gesehen ist ein Projekt in QF-Test eine Sammlung von Testsuiten mit einem gemeinsamen Wurzelverzeichnis. Es gibt eine 1:1 Beziehung zwischen dem Projekt und seinem Verzeichnis und der Name des Verzeichnisses wird automatisch zum Namen des Projekts.
Ein neues Projekt erstellen Sie über das Menü »Datei«-»Neues Projekt...«. Wählen Sie anschließend das Verzeichnis aus.
QF-Test erstellt darin eine Datei namens qftest.qpj, die das Verzeichnis als
Projekt kennzeichnet. Daneben können in der Datei auch Optionen und projektspezifische Bibliothekspfade
definiert werden wie in "Die Datei qftest.qpj" beschrieben.
9.1 Unterprojekte
Ein Unterprojekt ist ein Unterverzeichnis eines Projekts, welches selbst ein Projekt ist. Testsuiten innerhalb eines Unterprojekts gehören auch zu allen Projekten darüber. Das Projekt einer Testsuite ist das innerste Projekt, zu dem die Suite gehört. Die Automatische Auflösung von Abhängigkeiten umfasst immer das gesamte äußerste Projekt einer Testsuite inklusive aller Unterprojekte.
9.2 Projektansicht
Die Projektansicht mit ein oder mehreren Projekten wird über das Menü »Ansicht«-»Projekte anzeigen« ein oder ausgeschaltet. Der Projektbaum zeigt die Verzeichnishierarchie eines Projekts mit den Testsuiten, beginnend vom Wurzelverzeichnis. Die Hierarchie kann mit Hilfe des Filters oben am Baum eingeschränkt werden, der sich auf die Namen von Testsuiten bezieht. Ein Doppelklick auf eine Testsuite öffnet diese, ebenso wie ein Druck auf die Eingabe Taste. Es können auch mehrere Dateien auf einmal selektiert, oder alle Dateien unterhalb eines Verzeichnisses geladen werden.
Die Hierarchie wird regelmäßig komplett aktualisiert, den Zeitabstand hierfür definiert die Option Zeitabstand für automatisches Auffrischen von Projekten (s). Sie können ein Verzeichnis inklusive seiner gesamten Hierarchie jederzeit manuell über das Kontextmenü oder durch Drücken von F5 aktualisieren. Um das Verzeichnis komplett neu einzulesen ohne sich auf die Änderungszeiten der Verzeichnisse zu verlassen, was bei großen Projekten deutlich länger dauern kann, drücken Sie stattdessen Umschalt+F5.
Mit der F6 Taste wechseln Sie den Fokus zwischen Testsuite und Projektansicht hin und her. Um schnell von der aktuellen Testsuite zu deren Knoten im Projektbaum zu gelangen, drücken Sie Umschalt+F6. Falls nötig werden Projektansicht und Projektbaum für diese Aktion automatisch geöffnet.
9.3 Die Datei qftest.qpj
Die Datei qftest.qpj kennzeichnet das Wurzelverzeichnis eines
Projekts. Alle Testsuiten unterhalb dieses Verzeichnisses gehören automatisch
zum Projekt, mit Ausnahme derer, die entweder über die projektspezifischen Einträge in der
"Rubrik [exclude]" oder durch die globale Option Auszuschließende Projektdateien und -verzeichnisse
ausgeschlossen werden. Unter "Einstellungen für Projekte" finden Sie weitere Informationen über Optionen
für Projekte.
Im Normalfall ist diese Datei leer. Es können jedoch Eintragungen in verschiedenen Rubriken gemacht werden, die jeweils mit einem Eintrag der Form [Rubrikname] eingeleitet werden. Leerzeilen oder Zeilen beginnende mit "#" werden ignoriert.
Hinweis
Der Inhalt der Datei qftest.qpj muss im UTF-8-Zeichensatz kodiert sein.
9.3.1 Rubrik [config]
Diese Rubrik beinhaltet Einstellungen für das Projekt mit Einträgen in der Form Name=Wert. Mögliche Einstellungen sind:
- readgitignore
-
Legt fest, ob Dateien oder Verzeichnisse ausgeschlossen werden sollen, die in einer
.gitignoreDatei definiert sind (für die Spezifikation des Formats ziehen Sie bitte eine Dokumentation der Versionsverwaltunggitheran). Mögliche Werte sind "true", "false" oder ein Dateiname, der anstelle der.gitignoreDatei im Projektverzeichnis gelesen werden soll.Der Standardwert ist "false". Die Nutzung einer
.gitignoreDatei wird empfohlen, wenn ein QF-Test Projekt mit einem großen Projekt so kombiniert wird, dass viele Dateien darin enthalten sind, die für QF-Test keine Rolle spielen.
9.3.2 Rubrik [librarypath]
In dieser Rubrik können Bibliothekspfade angegeben werden, die nur für das Projekt gelten. Jede Zeile
enthält einen Pfad - entweder relativ zum Wurzelverzeichnis des Projekts oder absolut. Für variable Angaben
kann ${env:...} oder ${system:...} verwendet werden. Die entsprechenden Werte
müssen dann bei der Ausführung des Tests gesetzt sein, zum Beispiel bei ${env:myLibpath} die
Umgebungsvariable myLibpath, bei ${system:myLibpath} die Java System-Property
myLibpath, siehe auch das Beispiel in "Beispiel".
Die Bibliothekspfade werden der Reihe nach durchsucht, wenn relative Dateinamen nicht relativ zur aufrufenden Suite aufgelöst werden können. Falls verschachtelte Projekte existieren, werden zuerst die Bibliothekspfade durchsucht, die für das innerste Projekt angegeben sind, dann die des jeweils nächstäußeren Projekts. Falls dies auch keinen Treffer ergibt, werden die Dateien in den globalen Bibliothekspfaden angegeben sind, vgl. Der Aufruf einer Prozedur in einer anderen Testsuite.
9.3.3 Rubrik [exclude]
Hier können explizit Dateien und Verzeichnisse angegeben werden, die vom Projekt ausgeschlossen werden sollen. Jede Zeile enthält einen Pfad - entweder relativ zum Wurzelverzeichnis des Projekts oder absolut.
9.3.4 Rubrik [include]
Hier können explizit einzelne Dateien oder Unterverzeichnisse wieder eingeschlossen werden, die in einem
Verzeichnis liegen, das über die [excludes]-Rubrik ausgeschlossen wurde. Jede Zeile enthält
einen Pfad - entweder relativ zum Wurzelverzeichnis des Projekts oder absolut.
9.3.5 Beispiel
[config]
gitignore = ../.gitignore # .gitignore-Datei aus dem übergeordneten Verzeichnis berücksichtigen
[librarypath]
../myLibFolderOutsideTheProject # Pfad relativ zum Wurzelverzeichnis des Projekts
C:/testing/myLibraries # Absoluter Pfad
${env:myLibpath} # Die Umgebungsvariable 'myLibpath' enthält den Wert
${system:myLibpath} # Die Sytem-Property 'myLibpath' enthält den Wert
[exclude]
scratch # Verzeichnis ausschließen
[include]
scratch/wichtig.qft # Mit einer Ausnahme
Hinweis Verwenden Sie grundsätzlich - auch unter Windows - das '/'-Zeichen als Verzeichnistrenner. QF-Test verwendet dann zur Laufzeit das korrekte Trennzeichen für das jeweilige System. Dadurch bleiben die Testsuiten auf verschiedenen Systemen lauffähig.