Skip to content
Matthew Holt edited this page Oct 23, 2013 · 15 revisions

What is GoConvey?

Basically, GoConvey is an extension of the built-in Go test tool. It facilitates Behavior-driven Development (BDD) in Go, though this is not the only way to use it. Many people continue to write traditional Go tests but prefer GoConvey's web UI for reporting test results.

Can I use GoConvey with go test?

Yes, that's the point!

What is the web UI?

It's test results in your browser. It updates automatically as files in the watched directories are saved or changed. See the web UI wiki page for more information.

How can I get tests to run automatically?

If you're using the web UI with goconvey-server to watch tests in your browser, then tests already run automatically when .go files are changed.

For running tests in your terminal, check out how to use the idle.py auto-test script. (It's really easy!)

Does the web UI work with traditional Go tests?

Yep! If you haven't ported all your tests over to GoConvey, your traditional Go test cases will still be run and the results will be reported in the browser.

If I'm new to testing, what do you recommend reading?

Why did we create this? (Isn't go test good enough?)

We weren't satisifed with the built-in GoLang test tools. No, actually we were overjoyed that the language came with something built-in. And we liked go test enough that rather than create something from the ground up we decided to integrate with go test directly. We were just used to something much more descriptive and that facilitated testing large systems withing a lot of boiler plate code.

Why is it called GoConvey?

We've used a few different BDD tools before, each having its own take on the language you should use to specify the behavior of the system under test. "Given, When, Then" vs. "Establish, Because, It" from BDD and "Arrange, Act, Assert" from TDD are a few examples. In the end, you use the testing tool to specify or "convey" what the system should do. So, the main function you'll use to write specifications is named Convey. The language you use to specify your system is up to you, although we usually use the "Given, When, Then" style.

Clone this wiki locally