-1

我从测试标志中的 go 标志中学习

我在我的项目中编写了一些测试文件。

这是我的service文件夹:

  • 服务
    • family_limit_settings.go
    • family_limit_settings_test.go
    • xxxxxx.go(其他 go 源文件)
    • xxxxxx_test.go(其他人去测试源文件)

我的family_limit_settings_test.go内容如下:

func TestSaveSettings(t *testing.T) {
    // todo
}

func TestListByFamilyId(t *testing.T) {
    // todo
}

func TestFamilyLimitVerify(t *testing.T) {
    // todo
}

func BenchmarkFamilyListByFamilyId(b *testing.B) {
    // todo
}

func BenchmarkFamilySaveSettings(b *testing.B) {
    // todo
}

func BenchmarkFamilyLimitVerify(b *testing.B) {
    // todo
}

我的第一个问题

cd这个服务文件和运行命令如下:

 go test -v -bench=.

但是我发现它运行了其他不是基准功能的测试功能。(我知道是因为其他常见的测试功能出现了问题)

我的第二个问题

go test -v -bench=. -run=BenchmarkFamilyListByFamilyId

我想使用名称执行基准函数,BenchmarkFamilyListByFamilyId但我发现它执行所有基准函数。

4

1 回答 1

2

-run 参数仅匹配测试和示例,-bench 匹配基准。And.是一个匹配每个名称的正则表达式,因此-bench=.执行所有基准测试。

要仅执行 BenchmarkFamilyListByFamilyId 基准测试而不执行任何测试,请运行类似

go test -v -bench=ByFamilyId -run=XXX
于 2021-09-17T07:15:04.340 回答