If you’re a YUI core developer, you should be using Yeti. Here’s how to get started.
Yeti works best with modern browsers.
Make sure you have a recent Node.js then grab the latest Yeti:
npm install -g http://latest.yeti.cx
Open a new Terminal tab, cd to your YUI source, then start the Yeti server.
cd path/to/yui3 yeti -s Yeti Hub started. LAN: http://10.1.1.10:9000 Local: http://localhost:9000
Now you’re set. Navigate your local browsers to the local link and your browsers elsewhere on your LAN to the LAN link.
It’s important that you run this from the
yui3 directory and not inside the
build directories. That’s because Yeti’s server will only serve files in the current directory, so if you started it inside
src your tests wouldn’t be able to load
../build files like the YUI seed.
Optional: Tunnel out
Using Localtunnel, you can easily share a Yeti Hub with browsers outside your firewall.
gem install localtunnel localtunnel 9000
Use the URL you get from
localtunnel to connect more browsers.
Run your tests
This could not be easier.
cd path/to/yui3/src/your-component yeti tests/unit/*.html
You’ll get test feedback right away. Feel free to abort with Ctrl-C and your browsers will reset for the next run automatically.
Would you like to see code coverage, too?
yeti --query 'filter=coverage' tests/unit/*.html
Now you have line coverage in your output.
Use someone else’s Hub on your network
If someone else already has browsers setup on a Hub, you can easily use their Hub by giving Yeti the Hub’s URL. Here’s an example.
yeti --hub http://10.1.1.10:9000 tests/unit/*.html
If you started a Hub, share the LAN link with others on your network and have them use the
--hub option with that URL.
This magic happens using HTTP upgrades, so simple proxies like Localtunnel or some Node.js cloud hosting providers won’t work for Hub sharing because they don’t handle these kinds of connections. Look for services that support WebSockets.
Every automated test in the project can be submitted. This will take a while.
cd path/to/yui3 yeti src/**/tests/unit/*.html
More coming soon
I’m making this easier every day. If you’re annoyed by something, mention @reid on Twitter or discuss Yeti on the YUI Library forums. You can also file a bug against Yeti.
Yeti does not behave very well on older browsers. I am currently working on an all-new frontend that will be much more robust with error handling and reconnection. To keep up with what’s new, subscribe to the official Yeti blog where I highlight features and fixes for every Yeti release.