mestre:
Galen é uma ferramenta de código aberto para testar layout e design responsivo de aplicações web. É também uma estrutura de teste funcional poderosa. Para mais informações visite http://galenframework.com
Galen Framework usa Selenium para abrir o navegador da web e selecionar os elementos testados na página. Possui uma linguagem especial para descrever o layout da página da web para diferentes tamanhos de navegador. Você só precisa definir suas próprias tags para dispositivos e tamanhos e, em seguida, usar as verificações de gravação da linguagem galen spec para cada elemento na página. A melhor maneira de testar o layout é verificar a localização e as dimensões dos elementos relativamente uns aos outros. Aqui está um pequeno exemplo de sintaxe básica.
@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
E aqui está uma especificação mais avançada:
# 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
Declarações condicionais:
@objects
banner-container #banner-container
= Banner section =
@if ${isVisible("banner-container")}
banner-container:
image file imgs/banner.png, error 5%
Para obter mais informações, leia a documentação do Galen Framework
Se você quiser contribuir com este projeto basta procurar os problemas em aberto no momento. Informe nos comentários sobre o problema que você irá buscá-lo porque alguém já pode trabalhar nisso. No final basta enviar o pull request. A propósito, o recurso no qual você vai trabalhar não deve resolver apenas o seu problema específico. Deve ser extensível e configurável. As questões do github são o melhor lugar para debater sobre o recurso e discutir como ele deve ser implementado.
Todo o trabalho na próxima versão é realizado no branch de lançamento correspondente (por exemplo, release-2.5). O branch master reflete a versão atual ao vivo. A maioria das solicitações pull são aceitas no branch release e não no master.
Se desejar fazer uma alteração no site do Galen Framework (http://galenframework.com), você pode fazê-lo aqui https://github.com/galenframework/galenframework.com
Adicione a chave GPG ao seu maven settings.xml:
<properties>
<gpg.keyname>C78F3CC4</gpg.keyname>
<gpg.passphrase>Password</gpg.passphrase>
...
Configure as dependências mvn clean install
O teste pode ser executado via mvn verify
Para executar testes de integração no Chrome:
mvn clean verify -Dwebdriver.chrome.driver=/opt/dev/chromedriver -Dselenium.browser=chrome
Certifique-se de ter baixado o chromedriver, veja aqui
Além disso, você precisa do Maven 3.3 ou superior e do Node com alguns módulos:
sudo npm install -g grunt-cli
sudo npm install -g bower
Este projeto é baseado em Maven. Você pode usar o Intellij ou o Eclipse para isso. Ele está sendo desenvolvido em Linux então todos os scripts de montagem estão em bash. Para montar o dist com arquivos zip, basta executar ./makeDist.sh
e ele criará uma pasta dist com pastas binárias e de origem e preparará arquivos zip lá também. Se você quiser testar rapidamente o conceito e instalar o galen logo após a montagem você pode usar o script ./assembleAndInstall.sh
. Ele usa makeDist.sh
e depois invoca sudo ./install.sh
Existem dois níveis de teste. O primeiro é apenas o mvn clean test
regular. Mas como há muito código Javascript - você precisa do Mocha. Os testes estão localizados na pasta src/test/js/
. Para executar basta ir até essa pasta e executar testJs.sh
Galen Framework é licenciado sob licença Apache, versão 2.0