Согласно Голангу Док https://golang.org/pkg/go/build/
В теге build перечислены условия, при которых файл должен быть включен в пакет. Поэтому, если вы хотите запустить тест только для тегов сборки func_test, вам нужно предоставить другой тег для других тестов.
Вот пример:
В моей тестовой директории есть следующие 2 тестовых файла.
func_test.go
//+build test_all func_test
package go_build_test
import (
"fmt"
"testing"
)
func TestNormal(t *testing.T) {
fmt.Println("testing:", t.Name())
}
other_test.go
//+build test_all,!func_test
package go_build_test
import "testing"
import "fmt"
func TestOtherCase(t *testing.T) {
fmt.Println("testing:", t.Name())
}
Теперь, если вы хотите запустить все тесты.
$ go test -tags=test_all
testing: TestNormal
testing: TestOtherCase
PASS
ok _/D_/Project/ARC/source/prototype/go/src/go-build-test 0.186s
Запускается только func_test
$ go test -tags=func_test
testing: TestNormal
PASS
ok _/D_/Project/ARC/source/prototype/go/src/go-build-test 1.395s
Хитрость в том, чтобы работать с комментарием компоновки // + с условиями AND / OR.