maître:
Galen est un outil open source permettant de tester la mise en page et la conception réactive des applications Web. C'est également un framework de tests fonctionnels puissant. Pour plus d'informations, visitez http://galenframework.com
Galen Framework utilise Selenium pour ouvrir le navigateur Web et sélectionner les éléments testés sur la page. Il dispose d'un langage spécial pour décrire la mise en page d'une page Web pour différentes tailles de navigateur. Il vous suffit de définir vos propres balises pour les appareils et les tailles, puis d'utiliser les vérifications d'écriture du langage de spécification Galen pour chaque élément de la page. La meilleure façon de tester la disposition est de vérifier l’emplacement et les dimensions des éléments les uns par rapport aux autres. Voici un petit exemple de syntaxe de base.
@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
Et voici une spécification plus avancée :
# 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
Déclarations conditionnelles :
@objects
banner-container #banner-container
= Banner section =
@if ${isVisible("banner-container")}
banner-container:
image file imgs/banner.png, error 5%
Pour plus d'informations, veuillez lire la documentation du framework Galen.
Si vous souhaitez contribuer à ce projet, recherchez simplement les problèmes ouverts actuellement. Veuillez faire savoir dans les commentaires du problème que vous allez le récupérer car quelqu'un pourrait déjà y travailler. En fin de compte, envoyez simplement la pull request. À propos, la fonctionnalité sur laquelle vous allez travailler ne doit pas seulement résoudre votre problème particulier. Il doit être extensible et configurable. Les problèmes de Github sont le meilleur endroit pour débattre de la fonctionnalité et discuter de la manière dont elle devrait être implémentée.
Tout le travail sur la prochaine version est effectué dans la branche de version correspondante (par exemple release-2.5). La branche master reflète la version live actuelle. La plupart des pull request sont acceptées sur la branche release et non sur master.
Si vous souhaitez apporter une modification au site Web Galen Framework (http://galenframework.com), vous pouvez le faire ici https://github.com/galenframework/galenframework.com
Ajoutez la clé GPG à votre fichier maven settings.xml :
<properties>
<gpg.keyname>C78F3CC4</gpg.keyname>
<gpg.passphrase>Password</gpg.passphrase>
...
Configurer les dépendances mvn clean install
Le test peut être exécuté via mvn verify
Pour exécuter des tests d'intégration sur Chrome :
mvn clean verify -Dwebdriver.chrome.driver=/opt/dev/chromedriver -Dselenium.browser=chrome
Veuillez vous assurer que vous avez téléchargé Chromedriver, voir ici
Vous avez également besoin de Maven 3.3 ou supérieur et de Node avec certains modules :
sudo npm install -g grunt-cli
sudo npm install -g bower
Ce projet est basé sur Maven. Vous pouvez utiliser à la fois Intellij ou Eclipse pour cela. Il est développé sous Linux donc tous les scripts d'assemblage sont en bash. Afin d'assembler la dist avec les archives zip, exécutez simplement ./makeDist.sh
et il créera un dossier dist avec les dossiers binaires et sources et y préparera également les archives zip. Si vous souhaitez tester rapidement le concept et installer Galen juste après l'assemblage, vous pouvez utiliser le script ./assembleAndInstall.sh
. Il utilise makeDist.sh
puis invoque simplement sudo ./install.sh
Il existe deux niveaux de tests. Le premier est simplement le mvn clean test
habituel. Mais comme il y a beaucoup de code Javascript, vous avez besoin de Mocha. Les tests se trouvent dans le dossier src/test/js/
. Pour exécuter, allez simplement dans ce dossier et exécutez testJs.sh
Galen Framework est sous licence Apache, version 2.0