주인:
Galen은 웹 애플리케이션의 레이아웃과 반응형 디자인을 테스트하기 위한 오픈 소스 도구입니다. 또한 강력한 기능 테스트 프레임워크이기도 합니다. 자세한 내용은 http://galenframework.com을 참조하세요.
Galen Framework는 웹 브라우저를 열고 페이지에서 테스트된 요소를 선택하기 위해 Selenium을 사용합니다. 다양한 브라우저 크기에 대한 웹 페이지의 레이아웃을 설명하는 특수 언어가 있습니다. 장치와 크기에 대한 자체 태그를 정의한 다음 galen 사양 언어를 사용하여 페이지의 각 요소에 대한 쓰기 검사를 수행하면 됩니다. 레이아웃을 테스트하는 가장 좋은 방법은 요소의 위치와 크기를 서로 상대적으로 확인하는 것입니다. 다음은 기본 구문의 작은 예입니다.
@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
다음은 좀 더 발전된 사양입니다.
# 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
조건문:
@objects
banner-container #banner-container
= Banner section =
@if ${isVisible("banner-container")}
banner-container:
image file imgs/banner.png, error 5%
자세한 내용은 Galen Framework 문서를 읽어보세요.
이 프로젝트에 기여하고 싶다면 현재 공개된 이슈를 찾아보세요. 누군가가 이미 작업을 수행하고 있으므로 해당 문제를 선택하겠다고 문제에 대한 의견을 통해 알려주시기 바랍니다. 마지막으로 Pull Request를 보내면 됩니다. 그런데 여러분이 작업하려는 기능은 단지 특정 문제를 해결하는 것만으로는 충분하지 않습니다. 확장 가능하고 구성 가능해야 합니다. github 문제는 기능에 대해 토론하고 구현 방법을 논의할 수 있는 가장 좋은 장소입니다.
다음 버전의 모든 작업은 해당 릴리스 브랜치(예: release-2.5)에서 수행됩니다. 마스터 브랜치는 현재 라이브 버전을 반영합니다. 대부분의 풀 요청은 마스터가 아닌 릴리스 브랜치에서 허용됩니다.
Galen Framework 웹사이트(http://galenframework.com)를 변경하려면 여기(https://github.com/galenframework/galenframework.com)에서 변경할 수 있습니다.
Maven settings.xml에 GPG 키를 추가합니다.
<properties>
<gpg.keyname>C78F3CC4</gpg.keyname>
<gpg.passphrase>Password</gpg.passphrase>
...
종속성 설정 mvn clean install
테스트는 mvn verify
통해 실행할 수 있습니다.
Chrome에 대해 통합 테스트를 실행하려면 다음 안내를 따르세요.
mvn clean verify -Dwebdriver.chrome.driver=/opt/dev/chromedriver -Dselenium.browser=chrome
Chrome드라이버를 다운로드했는지 확인하세요. 여기를 참조하세요.
또한 Maven 3.3 이상과 일부 모듈이 포함된 Node가 필요합니다.
sudo npm install -g grunt-cli
sudo npm install -g bower
이 프로젝트는 Maven을 기반으로 합니다. Intellij나 Eclipse를 모두 사용할 수 있습니다. Linux에서 개발 중이므로 모든 조립 스크립트가 bash에 있습니다. zip 아카이브로 dist를 조립하려면 ./makeDist.sh
실행하면 바이너리와 소스 폴더가 모두 포함된 dist 폴더가 생성되고 거기에 zip 아카이브도 준비됩니다. 개념을 빠르게 테스트하고 조립 직후 galen을 설치하려면 스크립트 ./assembleAndInstall.sh
를 사용할 수 있습니다. makeDist.sh
사용한 다음 sudo ./install.sh
호출합니다.
테스트에는 두 가지 수준이 있습니다. 첫 번째는 일반적인 mvn clean test
입니다. 하지만 Javascript 코드가 많기 때문에 Mocha가 필요합니다. 테스트는 src/test/js/
폴더에 있습니다. 실행하려면 해당 폴더로 이동하여 testJs.sh
실행하십시오.
Galen Framework는 Apache 라이선스 버전 2.0에 따라 라이선스가 부여됩니다.