Meet your newest Intern

JavaScript tooling has gained a huge amount of attention over the past few years, no doubt due to the language’s rapidly increasing popularity and maturity. Many fantastic utilities and powerful debuggers have emerged to help close painful gaps for Web developers, but despite these advancements, high-quality JavaScript testing is still notably absent.

Up to this point, JavaScript authors have had to pick and choose testing tools with incredibly fragmented feature sets. Whereas one tool might support easily running tests manually in many browsers, another might allow command-line automation but only use PhantomJS. A third might be designed to integrate with a continuous integration service, where a fourth might support none of that but allow you to emulate true browser events from outside the JavaScript sandbox. One might have so many plugins that it’s impossible to figure out which ones to use, whereas another might be so inflexible that adding any new features is impossible. It’s a mess.

Intern, from SitePen Labs, is different. It combines all the best features from various testing tools (plus a few new ones of our own) into a single, versatile, easy-to-use, standards-based browser testing stack for JavaScript. We’ve been using this testing framework internally for a while with great success and are really excited to be able to make this level of JavaScript testing available to the entire Web community.

For more information on Intern’s features, usage examples, and documentation, please visit the Intern Web site. If you just want to get started straight away, take a look at the quick start guide. We’ll be making an npm package available very soon to make getting started even easier. Bug reports and feature requests can be posted to the GitHub issue tracker. If you have any other questions, we’re here to help! Free end-user support is currently available via Stack Overflow. SitePen also offers commercial JavaScript support if you need a little extra TLC.

Please let us know in the comments how Intern can work better for you, so you can focus on delivering high-quality code while the Intern does the testing. Happy coding!

That really says it all, it’s an all in one fully featured testing stack and I can’t see any comparison to other “frameworks”
Honestly, well done getting this out

Eric Elliott

Looks interesting. Spreading the word…

http://twitter.com/MehdiAvdi Mehdi Avdi

Wow looks good. I will git this a try later.

http://www.facebook.com/jbeduya Junrey Beduya

Wow! This looks great. Will surely try it.

http://twitter.com/ScottAGRC Scott Davis

We need a getting started, in depth tutorial. Doc’s are not enough yet. Thanks!

BigAB

This looks to be exactly what I need and have been waiting for… too bad I wasted a whole Saturday trying to get it to work. But unfortunately nothing quite works “right”, the examples all needed tweaking to make work, I still haven’t been able to get it to connect to sauce labs, or actually run selenium tests locally, but it all comes so close to working I figure it could be me doing something wrong.

I guess I’ll have to wait until more “Getting Started with Intern” tutorials come out. Pity, it looked so promising, I wanted to be the guy writting those blog posts.

http://twitter.com/moredream Hyunuk Jung

Interesting ~~~

http://www.facebook.com/dreamygod Wallace Sidhrée

Promising. Our team got a deep introduction on BusterJS by Christian Johansen himself (a great testing platform by the way) and looked a bit at Jasmine, but we’ll definitely be giving Intern a go.

http://www.sitepen.com/ Colin Snover

CasperJS only tests with PhantomJS, which means you aren’t actually testing in real browsers and aren’t going to discover real bugs caused by differences in the browsers end-users actually use to run your app.

http://www.sitepen.com/ Colin Snover

Which step of the quick start did you get stuck on? Knowing that will help us focus our documentation efforts.

http://www.sitepen.com/ Colin Snover

Which examples were you using that didn’t work without tweaks?

http://twitter.com/LukeGGChapman Luke Chapman

Hi I attempted to get this up an running tonight. A few questions that could help with documentation.

Using a basic module I attempted to test it using jasmine. I gave up on this and rewrote the tests in chai.

I’m not sure exactly how to view my test coverage in istanbul, do I need to use the lcov reporter?

I haven’t got around to running the tests with selenium yet, just using the console reporter. Do I have to write my own reporter for something better then the console reporter? Is there some way to have a watcher so this quickly updates to make BDD more efficient?

Hope these questions are relevant, Thanks.

gilbert beveridge

It seems like your suggesting that testing isn’t a pleasurable activity and that one should make an unpaid, lowly, assistant do this kind of work. Work that is above a developer’s pay-grade. I realize that the name is tongue in cheek. But I thought I would let you know that it could be perceived as a degrading chide to the testing professional. Just a consideration. Otherwise exciting work!

2. It is hard to objectively decide what reporter would be “better” than console reporter. The answer to that depends upon what you prefer to see in your output. The best way to get exactly what you want is to write your own reporter.

3. There are no plans to add a watch mechanism at this time, but you can always make a request in the issue tracker for such a feature.

At the time of evaluation, WebDriverJS didn’t provide a huge portion of the WebDriver protocol (none of the touch APIs, for example). It might now, but WD.js is serving our needs well enough that I haven’t felt any need to re-evaluate the underlying library.

Rick Graham

you give us the code base, and an example object…but how to tie them together is a little elusive. do we have a server to setup? should I use a pyhton http simple server? what goes where? do I need to build up an index.html to get started? I have no idea.

Bruce Holm

Will it work with Jenkins for CI? Any tips/tutorials available on how?

http://www.sitepen.com/ Colin Snover

Yes, you should be able to use Jenkins; no, we do not currently have any tutorials available about how to do so. Since running Intern just involves executing a single command, my understanding is that you just add the runner command as a normal command to run in “Execute shell”.

Gaurav Ramanan

My company and I have been long time users of Dojo and we were just getting the handle on DOH (Dojo Objective Harness). SitePen is definitely one of the front runner companies when it comes to Dojo.

Does the release of theintern mean the end of support for DOH (and the very useful DOH Robot / DOH Recorder) ?