去测试:只运行包含构建标签的测试?

我有一组长时间运行的测试,用构建标签定义。例如,


// file some_test.go

//+build func_test


(rest of file with test cases)

我还有许多其他较短的运行测试,没有这个构建标志。有没有一种方法可以让我轻松地只运行包含构建标签“func_test”的测试?


请注意,如果我只是运行go test -tags func_test,它会运行所有测试,包括some_test.go.


明月笑刀无情
浏览 98回答 2
2回答

MMMHUHU

根据 golang 文档https://golang.org/pkg/go/build/构建标签列出了文件应该包含在包中的条件。因此,如果您只想为构建标签 func_test 运行测试,那么您需要为其他测试提供不同的标签。这是一个示例:我的测试目录中有以下 2 个测试文件。func_test.go//+build test_all func_testpackage go_build_testimport (    "fmt"    "testing")func TestNormal(t *testing.T) {    fmt.Println("testing:", t.Name())}other_test.go//+build test_all,!func_testpackage go_build_testimport "testing"import "fmt"func TestOtherCase(t *testing.T) {    fmt.Println("testing:", t.Name())}现在如果你想运行所有的测试。$ go test -tags=test_alltesting: TestNormaltesting: TestOtherCasePASSok      _/D_/Project/ARC/source/prototype/go/src/go-build-test  0.186s只运行 func_test$ go test -tags=func_testtesting: TestNormalPASSok      _/D_/Project/ARC/source/prototype/go/src/go-build-test  1.395s诀窍是使用带有 AND/OR 条件的 //+build 注释。

蝴蝶刀刀

您可以按照惯例命名您的测试。即让您的长时间运行的测试功能从开始TestLong_ 然后运行它们 go test ./... -run TestLong -tags func_test
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go