2 回答
TA贡献1834条经验 获得超8个赞
根据 golang 文档https://golang.org/pkg/go/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 条件的 //+build 注释。
TA贡献1801条经验 获得超8个赞
您可以按照惯例命名您的测试。即让您的长时间运行的测试功能从开始TestLong_
然后运行它们 go test ./... -run TestLong -tags func_test
- 2 回答
- 0 关注
- 97 浏览
添加回答
举报