수색…
비고
Nightwatch는 Meteor 응용 프로그램에 대한 Acceptance 및 End-to-End 테스트를 v0.5 일 이후 제공하고 있으며 PHP에서 Spark to Blaze 및 React로 마이그레이션을 관리했습니다. 모든 주요 Continuous Integration 플랫폼이 포함됩니다. 추가 도움이 필요하면 다음을 참조하십시오.
트래비스
Travis는 Meteor 커뮤니티에서 인기를 얻게 된 최초의 Continuous Integration 서비스입니다. 견고하고 안정적이며 오랫동안 오픈 소스 호스팅 계층을 보유하고 있으며 수년 동안 수십만 대의 Nightwatch 테스트를 수행했습니다.
.travis.yml
.travis.yml
파일을 응용 프로그램의 루트에 넣기 .travis.yml
됩니다.
# this travis.yml file is for the leaderboard-nightwatch example, when run standalone
language: node_js
node_js:
- "0.10.38"
services:
- mongodb
sudo: required
env:
global:
- TRAVIS=true
- CONFIG_PREFIX=`npm config get prefix`
- DISPLAY=:99.0
- NODE_ENV=`travis`
matrix:
cache:
directories:
- .meteor/local/build/programs/server/assets/packages
- .meteor
before_install:
# set up the node_modules dir, so we know where it is
- "mkdir -p node_modules &"
# install nightwatch, selenium, , so we can launch nightwatch and selenium
- "meteor npm install nightwatch selenium-server-standalone-jar chromedriver"
# fire up xvfb on port :99.0
- "sh -e /etc/init.d/xvfb start"
# set the xvfb screen size to 1280x1024x16
- "/sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -ac -screen 0 1280x1024x16"
# install meteor
- "curl https://install.meteor.com | /bin/sh"
# give meteor a few seconds after installing
- "sleep 10"
# setup Meteor app
- "cd webapp"
- "meteor &"
# give Meteor some time to download packages, init data, and to start
- "sleep 60"
# then run nightwatch using the chromedriver
script: "nightwatch -c .meteor/nightwatch.json"
원
Circle 은 Meteorites 사이에서 인기를 누리는 새로운 Continuous Integration 서비스입니다. 지속적인 통합이 이루어질 때까지 모든 최신 벨과 호루라기가 있습니다. 다음 스크립트는 다음과 같은 많은 새로운 기능을 지원합니다.
- 스크린 샷
- 유물
- 자식 서브 모듈
- 환경 검출
- 디렉토리 캐싱
- 병렬성 최적화
- npm 스크립트
- 지속적인 배치
- 웹 훅
.circle.yml
## Customize the test machine
machine:
# Timezone
timezone:
America/Los_Angeles # Set the timezone
# Add some environment variables
environment:
CIRCLE_ENV: test
CXX: g++-4.8
DISPLAY: :99.0
NPM_PREFIX: /home/ubuntu/nvm/v0.10.33
INITIALIZE: true
NODE_ENV: circle
## Customize checkout
checkout:
post:
#- git submodule sync
#- git submodule update --init --recursive # use submodules
general:
build_dir: webapp
artifacts:
- "./tests/nightwatch/screenshots" # relative to the build directory
## Customize dependencies
dependencies:
cache_directories:
- "~/.meteor" # relative to the user's home directory
- ~/nvm/v0.10.33/lib/node_modules/starrynight
- ~/nvm/v0.10.33/bin/starrynight
pre:
# Install Starrynight unless it is cached
- if [ ! -e ~/nvm/v0.10.33/bin/starrynight ]; then npm install -g starrynight; else echo "Starrynight seems to be cached"; fi;
# Install Meteor
- mkdir -p ${HOME}/.meteor
# If Meteor is already cached, do not need to build it again.
- if [ ! -e ${HOME}/.meteor/meteor ]; then curl https://install.meteor.com | /bin/sh; else echo "Meteor seems to be cached"; fi;
# Link the meteor executable into /usr/bin
- sudo ln -s $HOME/.meteor/meteor /usr/bin/meteor
# Check if the helloworld directory already exists, if it doesn't, create the helloworld app
# The following doesn't work, because it should be checking ${HOME}/active-entry/helloworld
# - if [ ! -e ${HOME}/helloworld ]; then meteor create --release [email protected] helloworld; else echo "helloworld app seems to be cached"; fi;
override:
#- meteor list
## Customize test commands
test:
pre:
#- starrynight fetch
#- cd packages && rm -rf temp
#- cd packages && ls -la
#- starrynight autoconfig
- meteor update --release [email protected]
- meteor npm install --save jquery bootstrap react react-dom react-router react-bootstrap react-komposer
- cat .meteor/nightwatch.json
- meteor:
background: true
- sleep 60
override:
- meteor npm run-script nightwatch
## Customize deployment commands
#deployment:
# production:
# branch: master
# commands:
# - printf "<Meteor username>\n<Meteor password>\n" | meteor deploy myapp.meteor.com
## Custom notifications
#notify:
#webhooks:
# A list of hashes representing hooks. Only the url field is supported.
#- url: https://someurl.com/hooks/circle
소스 랩스
SauceLabs 는 기업을위한 자동화 된 테스트 플랫폼입니다. 이는 지속적인 통합, 크로스 브라우저 테스트 및 모바일 장치 클라우드 모두를 지원합니다. 비용은 Travis, Circle 또는 BrowserStack보다 높습니다 (hwoever).
{
"selenium" : {
"start_process" : false,
"host" : "ondemand.saucelabs.com",
"port" : 80,
},
"test_settings" : {
"chrome_saucelabs": {
"selenium_host": "ondemand.saucelabs.com",
"selenium_port": 80,
"username": "${SAUCE_USERNAME}",
"access_key": "${SAUCE_ACCESS_KEY}",
"use_ssl": false,
"silent": true,
"output": true,
"screenshots": {
"enabled": false,
"on_failure": true,
"path": ""
},
"desiredCapabilities": {
"name": "test-example",
"browserName": "chrome"
},
"globals": {
"myGlobal": "some_sauce_global"
}
},
}
}
BrowserStack
BrowserStack 은 브라우저 간 테스트를 위해 장치 클라우드를 사용합니다. 의도는 가능한 모든 장치에서 Selenium 스크립트의 테스트를 허용하는 것입니다.
{
"selenium" : {
"start_process" : false,
"host" : "hub.browserstack.com",
"port" : 80,
},
"test_settings" : {
"default" : {
"launch_url" : "http://hub.browserstack.com",
"selenium_port" : 80,
"selenium_host" : "hub.browserstack.com",
"silent": true,
"screenshots" : {
"enabled" : false,
"path" : "",
},
"desiredCapabilities": {
"browserName": "firefox",
"javascriptEnabled": true,
"acceptSslCerts": true,
"browserstack.user": "USERNAME",
"browserstack.key": "KEY"
}
}
}
}