Product Features Demo Pricing Resources Contact Documentation Articles Company Customers Legal Stuff

GoConvey - (yet) another testing tool for GoLang

GoConvey features a clean DSL, comprehensive set of built-in assertions, an auto-reloading web UI and fully integrates with GoTest.
December 26, 2013 (subscribe)

It’s now been a few months since I decided that the kind of testing tools I wanted for Go programming hadn’t yet been created (or I just hadn’t found them yet…). So, about 4 months ago I started work on GoConvey and a month later came the first release.

Look at your test output, now look at GoConvey, now look at your output, now back to GoConvey. Sadly, your test output isn't like GoConvey...

The coolest thing about GoConvey (other than the clean DSL, comprehensive set of built-in assertions, and the fact that it integrates fully with go test) is the built-in auto-reloading web UI that reports your test results to your web browser whenever a relevant file is saved (HTML5 notifications included). I’ve always been a fan of terminal scripts that run tests on changes but had never seen it done in the browser. Thanks to Matt at SmartyStreets for turning that idea into a reality that was even more fun to use than I initially thought.

Since the initial release a lot has been improved. Here’s a summarized listing:

Web UI

  • You can now ignore folders from the web UI
  • Complete folder listing on left
  • More reliable diff views
  • Browser/HTML5 notifications
  • invoke tests manually (click refresh button)
  • Failures now display ‘story’ context
  • “Busy” indicator when tests are running
  • Audio easter egg (can you find it?)
  • Bug fixes
  • Coverage reports (for those using Go version 1.2+)

Web Server

  • Completely rewritten (with full test coverage–using GoConvey!)
  • Stability improvements
  • Configure number of concurrent testing goroutines
  • Lots of bug fixes

Core updates

  • Go 1.2 support
  • OS X Mavericks terminal support
  • Easier installation; just one go get -t command
  • New ShouldBeZeroValue assertion
  • Bug fixes

While there are many things I’d like to do to improve GoConvey I’m really proud of it for now. Thanks also go to the Gopher Academy Blog for publishing our guest post in its recent Go Advent listing (and thanks again to Matt for writing the article!). I plan on publishing several more posts about how to get the most out of GoConvey to drive the development of your software systems. Stay tuned…