Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ryanseddon/bunyip
Automate client-side unit testing in real browsers using the CLI
https://github.com/ryanseddon/bunyip
Last synced: 13 days ago
JSON representation
Automate client-side unit testing in real browsers using the CLI
- Host: GitHub
- URL: https://github.com/ryanseddon/bunyip
- Owner: ryanseddon
- License: mit
- Created: 2012-04-23T06:24:30.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2018-07-26T04:06:02.000Z (over 6 years ago)
- Last Synced: 2024-10-19T19:26:34.880Z (24 days ago)
- Language: JavaScript
- Homepage: http://ryanseddon.github.com/bunyip/
- Size: 456 KB
- Stars: 382
- Watchers: 12
- Forks: 19
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE-MIT
Awesome Lists containing this project
README
# bunyip
Automate client-side unit testing in real browsers using the CLI
## Getting Started
Install the module with: `npm install -g bunyip`. This is a CLI tool so it needs to be globally installed.### BrowserStack account
In order for bunyip to flex its real muscle I recommend you get a paid [BrowserStack account](http://www.browserstack.com/pricing) as all paid accounts have access to their API. Without the API you'll need to connect your own slave browsers to bunyip.### localhost sharing service
If you wish to test on devices that are not part of your local network you'll be required to setup a tunneling service. I recommend [pagekite](https://pagekite.net/support/quickstart/) as it gives you a nice free chunk of data and allows you to specify a reusable subdomain. [Showoff.io](https://showoff.io/) is another good option.### Setup the config.js file
If you don't wish to use BrowserStack or a localhost sharing service you can skip this step.To generate a config file you can run this command:
`bunyip config path/to/config.js`
This will take you through a multistep process to setup your username, password, tunnel url and tunnel command.
So I if wanted to save a config file to my home directory I would do the following.
`bunyip config ~/config.js`
### Specify config file to use
If I want to specify a specific config file to use the `-c, --cdir` flag lets you do that.
`bunyip -f test/tests.html -c path/to/config.js`
If you do not specify a config file to use it will look in your current working directory for a file name `config.js` otherwise it will not require one in.
## Test suite adaptors
Behind the scenes bunyip uses a tool called Yeti. Yeti 0.2.14+ works with [YUI Test](http://yuilibrary.com/yuitest/), [QUnit](http://qunitjs.com/), [Mocha](http://visionmedia.github.com/mocha/), [Jasmine](http://pivotal.github.com/jasmine/) or [DOH](http://dojotoolkit.org/reference-guide/util/doh.html). If you use another client-side test suite, you'll have to write an adaptor - please feel free to contribute it to my [yeti-adaptors](https://github.com/ryanseddon/yeti-adaptors) repo, or file an issue/PR with [Yeti](https://github.com/yui/yeti) itself.
## Examples
```bash
bunyip -f index.html
```The above command will launch a simple Yeti hub on port 9000 and use the `index.html` inside your current working directory.
```bash
bunyip -f index.html -p 1337
```This will change the port that is used. The global config value will be updated for you so don't worry.
### Locally installed browsers
Using the `local` command you can now open your test suite in all locally installed browsers or specify a series of browsers
```bash
bunyip -f index.html local
```This will open in all locally installed browsers with one assumption that phantomjs is installed in `/usr/bin/`.
```bash
bunyip -f index.html local -l "firefox|chrome|safari|phantomjs"
```This will open the installed versions of Firefox, Chrome, Safari and Phantomjs.
The `local` command looks for the following browsers:
* Firefox, Firefox Aurora, Firefox Nightly
* Chrome, Chrome Canary
* Opera, Opera Next
* Safari
* Phantomjs### BrowserStack workers
```bash
bunyip -f index.html -b ios
```Assuming you have a BrowserStack paid account and have setup a localhost sharing service the `-b ios` will send off a command to launch all iOS devices (3 iPhones and 3 iPads) on BrowserStack and once they're connected you can run your test suite.
```bash
bunyip -s
```This will query the BrowserStack API for any device or browsers that are currently running on your account.
```bash
bunyip -k or all
```If you no longer need a specific worker or you wish to destroy all of them you can either specify a single worker id or `all` and it will destroy said worker(s).
```bash
bunyip -h
```For more info specify the help flag to get more info about each command flag available.
## Contributing
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using [grunt](https://github.com/cowboy/grunt).## Release History
* 25/10/2012 - v0.2.2 - Fixes incompatibility with latest yeti release.
* 20/08/2012 - v0.2.0 - Added a `local` command to run your test suite in locally installed browsers.
* 15/07/2012 - v0.1.3 - Added ability to generate config file and to specify location of config file to use.## License
Copyright (c) 2012 Ryan Seddon
Licensed under the MIT license.