Skip to main content
Testereiro - Test Engine Toolkit for Go
GitHub Go Docs Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Getting Started

Requirements

  • Go 1.24+
  • A test framework using testing (go test)

Install Core

1
go get github.com/wrapped-owls/testereiro/puppetest

Minimal Engine Setup

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package mytests

import (
	"log/slog"
	"os"
	"testing"

	"github.com/wrapped-owls/testereiro/puppetest"
)

var NewEngine func(t testing.TB) *puppetest.Engine

func TestMain(m *testing.M) {
	factory, err := puppetest.NewEngineFactory()
	if err != nil {
		slog.Error("failed to create engine factory", slog.String("error", err.Error()))
		os.Exit(1)
	}

	NewEngine = factory.NewEngine
	code := m.Run()

	if err = factory.Close(); err != nil {
		slog.Error("failed to close engine factory", slog.String("error", err.Error()))
		os.Exit(1)
	}

	os.Exit(code)
}

First Test

1
2
3
4
5
6
func TestSmoke(t *testing.T) {
	engine := NewEngine(t)
	if engine.BaseURL() != "" {
		t.Fatal("expected no server in this setup")
	}
}

Add an HTTP Server Extension

1
2
3
4
5
6
7
8
factory, err := puppetest.NewEngineFactory(
	puppetest.WithExtensions(
		puppetest.WithTestServer(myHandler()),
	),
)
if err != nil {
	panic(err)
}

Then use engine.BaseURL() from your tests.

Add a Database Connection

1
2
3
4
5
6
factory, err := puppetest.NewEngineFactory(
	puppetest.WithConnectionFactory(mySQLPerformer, true),
)
if err != nil {
	panic(err)
}

mySQLPerformer must match puppetest.ConnectionPerformer.

Next Steps