Jay Taylor's notes
back to listing indexGoConvey - Go testing in the browser
[web search]GoConvey
by SmartyStreets
Write behavioral tests in your editor. Get live results in your browser.
Uses go test
GoConvey supports Go's native testing
package. Neither the web UI nor the DSL are required; you can use either one independently.
Terminal or browser
Since GoConvey integrates with go test
, you can keep running tests in the terminal or use the auto-updating web UI for test results.
Tell your program's story
Though writing tests with Convey()
and So()
is optional, it's more expressive than t.Errorf()
.
Get started
$ go get github.com/smartystreets/goconvey
$ $GOPATH/bin/goconvey
Then open your browser to localhost:8080. Tests will be run from the working directory on down.
Feature Tour
Brilliant Web UI
Tests run automatically
Simply save a .go
file or click the icon to execute tests. Your browser page will update automatically.
Coverage report
You can click a package name in the top-left corner to view Go's detailed HTML coverage report.
Dark, light, and custom themes
GoConvey comes with two themes built-in. (Toggle the theme on this page to try it!) You can also use third-party themes or roll your own.
Pause, resume, and review
You can pause auto-test execution and go through recent test history to see where, when, and why your code is breaking.
Expressive DSL
Implicit setup and optional teardown
All higher-level Convey
scopes are run for each nested Convey
call.
Use Reset
to clean up when you're done.
Describe tests with your own words
Write tests your own way. There is no enforced vocabulary for defining tests: Convey("What your application should do", ...)
Lots of yummy assertions
Here's a few to whet your appetite:
ShouldEqual
ShouldResemble
ShouldBeTrue
ShouldBeZeroValue
ShouldNotContainSubstring
ShouldPanic
ShouldNotHappenBefore
ShouldHappenWithin
Even more or make your own...
HTML5 Desktop Notifications
Never leave your editor
Turn notifications on with the web UI to get live feedback when you save your file. Know immediately if you just broke something.
Not annoying: we promise.
Notifications automatically disappear after a few seconds and display only relevant information. They're off by default.
Terminal Output
Execute with go test
Remember, the web UI and DSL are independent of each other, so it can still be everything you're used to: test results in the terminal.
Colored & human-readable
You tell your program's story. The console output of go test
is easily readable by humans where the GoConvey DSL is used.
Code Composer
Focus on behavior
In the GoConvey Composer, don't worry about Go syntax. This tool helps you describe your program's behavior in a focused, distraction-free way.
Write tests with natural language
Your test file is stubbed out for you as you type your program's story. The smart input box preserves your tabs and feels like a real text editor.
Responsive Layout
Snuggle up next to your editor
As you can see, the GoConvey UI is responsive, so feel free to squish it beside your editor to maximize your available screen space.
That's not all, folks!
Get started with GoConvey and see if you'll ever go back
to writing code that's not under test.
$ go get github.com/smartystreets/goconvey
$ $GOPATH/bin/goconvey
Then open your browser to localhost:8080. Tests will be run from the working directory on down.
Made by Mike Whatcott and Matt Holt.
© 2013-2014. All rights reserved.