Stuntman: The Testing App

05-06-13 Rob Tarr

It may not have an American flag cape or sequined jumpsuit, but Rob's new testing app has some pretty fun tricks up its sleeve. Take it for a test drive. Test all the things.

About a year and a half ago we joined forces with Ryan Cromwell and the guys at Littlelines and began a bi-monthly meetup called Dayton Clean Coders. The purpose of this meetup is to gather with other developers to practice our craft. Attendees come from a variety of backgrounds—ranging from beginner to expert in JavaScript, Ruby, or .NET. We share and learn from each other, and each person brings their own experiences and knowledge in different language areas.

We quickly found that Try Jasmine, written by Justin Searls, was an easy way for us to work on things together. It provides a no-hassle way to begin writing JavaScript tests and code while seeing the results in the browser—no assembly required. Because it worked so well, we got stuck in a rut of using JavaScript/CoffeeScript and Jasmine for nearly all of our meetups. We had pretty much stopped writing Ruby code and exploring other languages or testing frameworks. No good.

I wanted a tool that would allow us to use different frameworks and possibly other languages.

So, I created one.


Stuntman is built on a Node.js backend using CodeMirror for the editors. As the editors are updated, it saves the code to localStorage. There’s a hidden iframe that is then loaded with the current test runner which loads the code from localStorage and runs it using the selected test suite. The results from this test are passed back to the top level app and displayed to the user. This gives the user instant feedback to the state of the tests.

It can also jump over school buses on a motorcycle.

One of the things that we found at our DCC meetups was that we wanted an easy way to save our work when we were finished (or almost finished). So, we connected the app to Github using OAuth. This allows us to login to Github and save our work to a gist, or we can load in a gist that we have previously worked on.

Current Stunts:

  • Languages: CoffeScript, JavaScript
  • Test Frameworks: Jasmine, QUnit, Mocha
  • Gists: Export, Import
  • Live updating test results

Future Stunts:

  • Languages: Ruby
  • Test Frameworks: RSpec
  • Collaborative editing

Stuntman gives us the ability to try different frameworks and syntaxes and—hopefully soon—different languages. It’s very much a work in progress. (Let’s call it an early beta.) But I wanted to share it soon so other people could have the chance to use it as well. Feel free to send the Stuntman over a few buses yourself.