Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I run specific golang test using go test -run

Tags:

go

What am I doing wrong here? I just want to run this one ConnectionPoolTest.TestNew and what ever I try, I get back 'no test to run'

:go test  --check.list *.go |grep Connectio
ConnectionPoolTest.TestNew
:go test  --run ConnectionPoolTest *.go
ok      command-line-arguments  0.005s [no tests to run]
:go test  --run ConnectionPoolTest.TestNew *.go
ok      command-line-arguments  0.005s [no tests to run]
like image 423
AC. Avatar asked Jan 26 '18 16:01

AC.


People also ask

How do I run a specific go test?

Use the go test -run flag to run a specific test. The flag is documented in the testing flags section of the go tool documentation: -run regexp Run only those tests and examples matching the regular expression.

Which command is used to run the tests in go?

Running subtests in Go The t. Run() command takes two arguments — the first matches against parameters passed to go test , and the second is the name of a test function.

Do Golang tests run in parallel?

By default, execution of test code using the testing package will be done sequentially. However, note that it is only the tests within a given package that run sequentially. If tests from multiple packages are specified, the tests will be run in parallel at the package level.


1 Answers

If you want to run a specific test, you may run as bellow

package main

import (
    "testing"
    "github.com/stretchr/testify/assert"
)

func TestA(t *testing.T) {
    assert.True(t, true)
}

func TestB(t *testing.T) {
    assert.True(t, false)
}

Run Test:

$ go test -run B
--- FAIL: TestB (0.00s)
        Error Trace:    a_test.go:13
        Error:          Should be true
FAIL
exit status 1
FAIL    test    0.004s
$ go test -run A
PASS
ok      test    0.003s
shahriar@Kite ~/g/s/test> 

-run flag

-run regexp
        Run only those tests and examples matching the regular expression.
        For tests the regular expression is split into smaller ones by
        top-level '/', where each must match the corresponding part of a
        test's identifier.
like image 97
Shahriar Avatar answered Oct 21 '22 11:10

Shahriar