package module
Version: v0.0.0-...-24333fe Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Oct 14, 2015 License: MIT Imports: 6 Imported by: 0


it Build Status Coverage Status

An opinionated Integration Test "framework" for Go.

What it does

Basically, it helps you to start up a test server with all your routes, and, with a real database! It will create a new temporary database for you, run the migrations and, after the tests ran, delete it.

The idea is based on an internal framework that we made in Java at @ContaAzul.

What's opinionated

  • Your app uses a database and that it is PostgreSQL (about to change);
  • Your app is a web app;
  • Configuration comes from environment variables.

There are also other defaults, but you can override them using environment variables. Check the config.go file.

Talk is cheap, show me the code!

Check out the example folder!

You can easily run it with:

$ cd example
$ time go test
2015/10/13 22:41:07 Create-ing test database hkermdouni
2015/10/13 22:41:07 Connecting to postgres://localhost:5432/hkermdouni?sslmode=disable
2015/10/13 22:41:07 Migrate-ing database...
2015/10/13 22:41:07 Shutdown IT...
ok	0.548s
go test  4.57s user 0.53s system 161% cpu 3.156 total


  • Create a database with a random name in the provided POSTGRES_URL;
  • Run all .sql files in the MIGRATIONS_FOLDER against the created database;
  • Run the tests;
  • Drop the test database (unless DROP_TEST_DATABASE is false).




This section is empty.


This section is empty.


This section is empty.


type IT

type IT struct {
	// contains filtered or unexported fields

IT is the main structure of the integration testing framework.

func New

func New() IT

New creates a new IT instance

func (*IT) Init

func (i *IT) Init(server ServerHandlerFn, connectToDatabase db.PoolFn) func(http.ResponseWriter, *http.Request)

Init the IT framework: loads config, creates the database and startup the server.

func (*IT) Shutdown

func (i *IT) Shutdown()

Shutdown the IT framework.

type ServerHandlerFn

type ServerHandlerFn func(*sql.DB) func(http.ResponseWriter, *http.Request)

ServerHandlerFn blah

Source Files


Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL