Documentation

Overview

Package subtest provides a TestContext to subtests which handles cleanup, and provides a testing.TB, and context.Context.

This package was inspired by github.com/frankban/quicktest.

DEPRECATED

With the addition of T.Cleanup() in go1.14 this package provides very little value. A context.Context can be managed by tests that need it with little enough boilerplate that it doesn't make sense to wrap testing.T in a TestContext.

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func Run

func Run(t *testing.T, name string, subtest func(t TestContext)) bool

    Run a subtest. When subtest exits, every cleanup function added with TestContext.AddCleanup will be run.

    Example (TableTest)
    Output:
    
    
    Example (TestSuite)
    Output:
    
    

    Types

    type TestContext

    type TestContext interface {
    	testing.TB
    	// AddCleanup function which will be run when before Run returns.
    	//
    	// Deprecated: Go 1.14+ now includes a testing.TB.Cleanup(func()) which
    	// should be used instead. AddCleanup will be removed in a future release.
    	AddCleanup(f func())
    	// Ctx returns a context for the test case. Multiple calls from the same subtest
    	// will return the same context. The context is cancelled when Run
    	// returns.
    	Ctx() context.Context
    	// Parallel calls t.Parallel on the testing.TB. Panics if testing.TB does
    	// not implement Parallel.
    	Parallel()
    }

      TestContext provides a testing.TB and a context.Context for a test case.

      Source Files