Helps integrating browserstack with your testem configuration
npm install browserstack-testem-integrationTestem with BrowserStack
========================
Run your tests on various browsers hosted on Browserstack!
Instructions
------------
1. Get a [BrowserStack] account.
2. Install this package npm install --save-dev browserstack-testem-integration
3. Add start/stop and launcher configuration to your testem configuration, see instructions below
and the examples in testem.json
4. For BrowserStack Authentication export the environment variables for the username and access key of your BrowserStack account. These can be found on the automate accounts page on BrowserStack export BROWSERSTACK_USERNAME=
You need to run the scripts start-BrowserStackLocal and stop-BrowserStackLocal, respectively
when starting/stopping the test run. Put this configuration in your testem.json:
``jsoncat browserStackLocal.pid
"on_start": {
"command": "kill -9 $(ps -A | grep BrowserStackLocal | grep -v grep | cut -d ' ' -f2); $(npm bin)/start-BrowserStackLocal &",
"wait_for_text": "Tunnel started",
"wait_for_text_timeout": 300000
},
"on_exit": "$(npm bin)/stop-BrowserStackLocal.js ; rm browserStackLocal.pid",`
The command in on_start kills any running session of browserstack if there is one. **Note: This
means that you cannot run 2 concurrent test runs by the same time. Configure your CI system
accordingly!**
You need to configure the launchers manually in your testem configuration. Examples are given in
testem.json. It is basically using the script run_on_browserstack.js with the name of the
browser as argument.
`json`
"launchers": {
"bs_chrome": {
"command": "$(npm bin)/run_on_browserstack Windows 10 chrome latest nil
"protocol": "browser"
}
}
gets replaced with the proper test URL by testem.
The arguments of run_on_browserstack are
``
node run_on_browserstack
You need to add quotes if one of the arguments contains a space (e.g. 'OS X' 'Mountain Lion').testem.json
You'll find further examples in of this repository.
#### Testem
Install [testem] globally by running npm install testem -g. This might be optional depending on
your project's test suite setup.
Use testem ci -l bs_chrome to test out the setup with just the Chrome browser, configured above.testem ci
Run to run it on all configured browsers - see testem launchers for the full list.
#### Optional: browserstack-cli
You can optionally install browserstack-cli in order to get a list of __all__ available browsers (as opposed to testem launchers which only lists the browsers, you have configured in testem.json), devices
and operating systems.
`sh``
npm install -g browserstack-cli
browserstack setup # asks for your credentials and stores the information in $HOME/.browserstack
browserstack browsers | less -r
[BrowserStack]: http://www.browserstack.com
[testem]: https://github.com/testem/testem