Recherche…
Remarques
Nightwatch fournit des tests d’acceptation et de bout en bout pour les applications Meteor depuis la version v0.5, et a géré les migrations de PHP vers Spark vers Blaze et React; et toutes les principales plates-formes d'intégration continue. Pour une aide supplémentaire, veuillez consulter:
Documentation de l'API Nightwatch
Groupe Google Nightwatch.js
Travis
Travis est le service d'intégration continue original qui est devenu populaire dans la communauté Meteor. Il est solide et fiable, a depuis longtemps un niveau d’hébergement open source et a réalisé des centaines de milliers de tests Nightwatch au fil des ans.
.travis.yml
Il suffit de mettre un fichier .travis.yml
dans la racine de votre application, comme ceci:
# 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"
Cercle
Circle est le nouveau service d'intégration continue devenu populaire parmi les météorites. Il a toutes les dernières nouveautés en matière d'intégration continue. Le script suivant prend en charge de nombreuses nouvelles fonctionnalités, notamment:
- captures d'écran
- artefacts
- sous-modules git
- détection de l'environnement
- mise en cache des répertoires
- optimisation du parallélisme
- scripts npm
- déploiement continu
- Webhooks
.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
SauceLabs est une plate-forme de test automatisée pour l'entreprise. Il prend en charge à la fois l'intégration continue, les tests inter-navigateurs et un nuage de périphériques mobiles. Les coûts sont plus élevés qu'avec Travis, Circle ou BrowserStack.
{
"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 utilise un nuage de périphériques pour les tests entre navigateurs. L'intention est de permettre le test des scripts Selenium sur chaque périphérique possible.
{
"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"
}
}
}
}