Master:
Galen ist ein Open-Source-Tool zum Testen des Layouts und des responsiven Designs von Webanwendungen. Es ist auch ein leistungsstarkes Funktionstest-Framework. Weitere Informationen finden Sie unter http://galenframework.com
Galen Framework verwendet Selenium, um den Webbrowser zu öffnen und die getesteten Elemente auf der Seite auszuwählen. Es verfügt über eine spezielle Sprache, um das Layout von Webseiten für verschiedene Browsergrößen zu beschreiben. Sie müssen lediglich Ihre eigenen Tags für Geräte und Größen definieren und dann mithilfe der Galen-Spezifikationssprache Schreibprüfungen für jedes Element auf der Seite durchführen. Der beste Weg, das Layout zu testen, besteht darin, die Position und Abmessungen der Elemente relativ zueinander zu überprüfen. Hier ist ein kleines Beispiel für die grundlegende Syntax.
@objects
header id header
menu css #menu
content id content
side-panel id side-panel
footer id footer
= Main section =
@on *
header:
inside screen 0px top, 0px left, 0px right
menu:
inside screen 0px left right
below header 0px
content:
below menu 0px
inside screen 0px left
@on desktop
side-panel:
below menu 0px
inside screen 0px right
width 300px
near content 0px right
@on mobile
content, side-panel:
width 100% of screen/width
side-panel:
below content 0px
Und hier ist eine erweiterte Spezifikation:
# example of using custom rules (functions)
@set userMargin 5 to 10 px
@objects
user-* div.users-list .user
@rule %{pattern} are below each other by %{distance} and aligned
@forEach [pattern] as object, prev as prevObject
${object}:
below ${prevObject} ${distance}
aligned vertically all ${prevObject}
= Checking all users =
| user-* are below each other by ${userMargin} and aligned
Bedingte Anweisungen:
@objects
banner-container #banner-container
= Banner section =
@if ${isVisible("banner-container")}
banner-container:
image file imgs/banner.png, error 5%
Weitere Informationen finden Sie in der Galen Framework-Dokumentation
Wenn Sie zu diesem Projekt beitragen möchten, suchen Sie einfach nach aktuellen offenen Fragen. Bitte teilen Sie uns in den Kommentaren zur Ausgabe mit, dass Sie sich darum kümmern werden, da bereits jemand daran arbeiten könnte. Am Ende senden Sie einfach die Pull-Anfrage. Übrigens sollte die Funktion, an der Sie arbeiten werden, nicht nur Ihr spezielles Problem lösen. Es sollte erweiterbar und konfigurierbar sein. Die Github Issues sind der beste Ort, um über die Funktion zu diskutieren und zu besprechen, wie sie implementiert werden sollte.
Die gesamte Arbeit an der nächsten Version wird im entsprechenden Release-Zweig durchgeführt (z. B. Release-2.5). Der Master-Zweig spiegelt die aktuelle Live-Version wider. Die meisten Pull-Anfragen werden im Release-Zweig und nicht im Master akzeptiert.
Wenn Sie eine Änderung an der Galen Framework-Website (http://galenframework.com) vornehmen möchten, können Sie dies hier tun: https://github.com/galenframework/galenframework.com
Fügen Sie den GPG-Schlüssel zu Ihrer Maven-Einstellungen.xml hinzu:
<properties>
<gpg.keyname>C78F3CC4</gpg.keyname>
<gpg.passphrase>Password</gpg.passphrase>
...
Richten Sie die Abhängigkeiten mvn clean install
ein
Der Test kann über mvn verify
ausgeführt werden
So führen Sie Integrationstests für Chrome durch:
mvn clean verify -Dwebdriver.chrome.driver=/opt/dev/chromedriver -Dselenium.browser=chrome
Bitte stellen Sie sicher, dass Sie den Chromedriver heruntergeladen haben, siehe hier
Außerdem benötigen Sie Maven 3.3 oder höher und Node mit einigen Modulen:
sudo npm install -g grunt-cli
sudo npm install -g bower
Dieses Projekt basiert auf Maven. Sie können dafür sowohl Intellij als auch Eclipse verwenden. Es wird unter Linux entwickelt, sodass alle Assemblierungsskripte in Bash vorliegen. Um die Dist-Datei mit Zip-Archiven zusammenzustellen, führen Sie einfach ./makeDist.sh
aus und es wird ein Dist-Ordner mit Binär- und Quellordnern erstellt und dort auch Zip-Archive vorbereitet. Wenn Sie das Konzept schnell testen und Galen direkt nach dem Zusammenbau installieren möchten, können Sie das Skript ./assembleAndInstall.sh
verwenden. Es verwendet makeDist.sh
und ruft dann einfach sudo ./install.sh
auf
Es gibt zwei Teststufen. Der erste ist nur der reguläre mvn clean test
. Da es jedoch viel Javascript-Code gibt, benötigen Sie Mocha. Die Tests befinden sich im Ordner src/test/js/
. Um es auszuführen, gehen Sie einfach in diesen Ordner und führen Sie testJs.sh
aus
Galen Framework ist unter der Apache-Lizenz, Version 2.0, lizenziert