• Stars
    star
    8,080
  • Rank 4,367 (Top 0.09 %)
  • Language
    Go
  • License
    Other
  • Created over 10 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Go testing in the browser. Integrates with `go test`. Write behavioral tests in Go.

SMARTY DISCLAIMER: Subject to the terms of the associated license agreement, this software is freely available for your use. This software is FREE, AS IN PUPPIES, and is a gift. Enjoy your new responsibility. This means that while we may consider enhancement requests, we may or may not choose to entertain requests at our sole and absolute discretion.

GoConvey is awesome Go testing

Build Status GoDoc

Welcome to GoConvey, a yummy Go testing tool for gophers. Works with go test. Use it in the terminal or browser according to your viewing pleasure.

GoConvey supports the current versions of Go (see the official Go release policy). Currently this means Go 1.16 and Go 1.17 are supported.

Features:

  • Directly integrates with go test
  • Fully-automatic web UI (works with native Go tests, too)
  • Huge suite of regression tests
  • Shows test coverage
  • Readable, colorized console output (understandable by any manager, IT or not)
  • Test code generator
  • Desktop notifications (optional)
  • Immediately open problem lines in Sublime Text (some assembly required)

You can ask questions about how to use GoConvey on StackOverflow. Use the tags go and goconvey.

Menu:

Installation

$ go install github.com/smartystreets/goconvey

Make a test, for example:

package package_name

import (
    "testing"
    . "github.com/smartystreets/goconvey/convey"
)

func TestSpec(t *testing.T) {

	// Only pass t into top-level Convey calls
	Convey("Given some integer with a starting value", t, func() {
		x := 1

		Convey("When the integer is incremented", func() {
			x++

			Convey("The value should be greater by one", func() {
				So(x, ShouldEqual, 2)
			})
		})
	})
}

Start up the GoConvey web server at your project's path:

$ $GOPATH/bin/goconvey

Then watch the test results display in your browser at:

http://localhost:8080

If the browser doesn't open automatically, please click http://localhost:8080 to open manually.

There you have it. As long as GoConvey is running, test results will automatically update in your browser window.

The design is responsive, so you can squish the browser real tight if you need to put it beside your code.

The web UI supports traditional Go tests, so use it even if you're not using GoConvey tests.

Just do what you do best:

$ go test

Or if you want the output to include the story:

$ go test -v

Check out the

  • GoConvey wiki,
  • GoDoc
  • and the *_test.go files scattered throughout this project.

Contributors

GoConvey is brought to you by SmartyStreets and several contributors (Thanks!).

More Repositories

1

cproxy

A simple, explicit forward proxy written in Go to facilitate HTTP CONNECT Tunneling.
Go
117
star
2

gunit

xUnit-style test fixture adapter for go test
Go
110
star
3

assertions

Fluent assertion-style functions used by goconvey and gunit. Can also be used in any test or application.
Go
83
star
4

scanners

Variations on the bufio.Scanner interface over various types of sources (csv, strings.Fields, fixed-width, etc...).
Go
27
star
5

smartystreets-php-sdk

The official client libraries for accessing SmartyStreets APIs from the PHP Hypertext Processor.
PHP
25
star
6

smartystreets-python-sdk

The official client libraries for accessing SmartyStreets APIs from Python 2.7 and 3.5
Python
25
star
7

smartystreets-javascript-sdk

The official client libraries for accessing SmartyStreets APIs from javascript.
JavaScript
25
star
8

smartystreets-ruby-sdk

The official client libraries for accessing SmartyStreets APIs from Ruby
Ruby
23
star
9

smartystreets-dotnet-sdk

The official client libraries for accessing SmartyStreets APIs from .Net (C# and CLR-based languages)
C#
20
star
10

smartystreets-go-sdk

The official client libraries for accessing SmartyStreets APIs from Go.
Go
19
star
11

metrics

Instrumentation for golang apps
Go
15
star
12

smartystreets-java-sdk

The official client libraries for accessing SmartyStreets APIs from Java (and JRE-based languages)
Java
14
star
13

smartystreets-ios-sdk

The official client libraries for accessing SmartyStreets APIs from iOS
Swift
8
star
14

s3

Wrapped subset of AWS SDK S3 behavior
Go
7
star
15

changelog

Change logs for SmartyStreets software and data packages.
7
star
16

version-tools

POSIX-compatible shell scripts with no dependencies to facilitate calculation of semantic version values and to tag SCM (Git, etc.) repositories with a version.
Shell
6
star
17

detour

An alternate, MVC-based, approach to HTTP applications in go.
Go
4
star
18

openapi-specification

Our APIs as defined by https://openapis.org
4
star
19

smartystreets-javascript-sdk-vue-example

An example implementation of the SmartyStreets JavaScript SDK using the Vue framework.
JavaScript
4
star
20

gitreview

Script for fetching and reviewing updates to all git repositories in specified directory roots.
Go
4
star
21

sqldb

A light adapter over Go's database/sql package.
Go
3
star
22

httpstatus

Configurable HTTP status page with support for pluggable health checks.
Go
3
star
23

smartystreets-javascript-sdk-react-example

An example implementation of the SmartyStreets JavaScript SDK using the React framework.
JavaScript
3
star
24

transports

Simple wrappers around stream transport protocols, e.g. gzip and TLS
Go
1
star
25

smartystreets-javascript-sdk-angular-example

JavaScript
1
star
26

messaging-kafka

Go
1
star
27

satisfy

A simple (bare-bones) dependency manager.
Go
1
star
28

ip-filter

A project to filter out unwanted ip addresses.
Go
1
star
29

httpserver

Simple adapter of http.Server implementation to standardize interface and to facilitate clean shutdown and reload.
Go
1
star
30

smartyping

Go
1
star
31

shuttle

Transforms HTTP requests into intention-revealing, user instructions. After processing the given operation, it then renders the results of that operation back to the underlying HTTP response.
Go
1
star