func TestMain(t *testing.T) {
	fmt.Println("incoming args: ", os.Args)
	var (
		args             []string
		run              bool
		startCaptureArgs bool
	)
	for i, arg := range os.Args {
		switch {
		case arg == "__DEVEL--i-heard-you-like-tests":
			run = true
			startCaptureArgs = true
		case strings.HasPrefix(arg, "-test"):
		case strings.HasPrefix(arg, "__DEVEL"):
		case i == 0:
			args = append(args, arg)
		case startCaptureArgs:
			args = append(args, arg)
		}
	}
	os.Args = args
	fmt.Println("using args: ", os.Args)
	if run {
		main()
	}
}
Idea taken from
https://github.com/openSUSE/umoci/blob/v0.2.1/cmd/umoci/main_test.go

/* How to generate coverage:
go test -c -covermode=atomic -cover -coverpkg github.com/zrepl/zrepl/...
sudo ../logmockzfs/logzfsenv /tmp/zrepl_platform_test.log /usr/bin/zfs \
./harness.test -test.coverprofile=/tmp/harness.out \
-test.v __DEVEL--i-heard-you-like-tests \
-imagepath /tmp/testpool.img -poolname zreplplatformtest
go tool cover -html=/tmp/harness.out -o /tmp/harness.html

Merge with existing coverage reports using gocovmerge:
https://github.com/wadey/gocovmerge
package main
import (
	"fmt"
	"os"
	"strings"
	"testing"
)