【发布时间】:2021-11-11 23:44:55
【问题描述】:
我从 Testing flags 的 go flags 中学习
我在我的项目中写了一些测试文件。
这是我的service 文件夹:
- 服务
- family_limit_settings.go
- family_limit_settings_test.go
- xxxxxx.go(其他go源文件)
- xxxxxx_test.go(其他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 的基准函数,但我发现它执行了所有基准函数。
【问题讨论】:
-
1.
family_limit_settings-test.go可能应该是family_limit_settings_test.go:它是一个分隔“测试”的下划线。 2. 如果你不想运行测试,你必须确保没有运行,例如通过-run x. -
1.我这里写错了,我编辑一下。
-
2. -run regexp 只运行那些匹配正则表达式的测试和示例。对于测试,正则表达式由不带括号的斜杠 (/) 字符拆分为一系列正则表达式,并且测试标识符的每个部分都必须匹配序列中的相应元素(如果有)。请注意,匹配的可能父项也会运行,因此 -run=X/Y 匹配并运行并报告与 X 匹配的所有测试的结果,即使是那些没有与 Y 匹配的子测试的测试,因为它必须运行它们来查找那些子测试-测试。
标签: go testing go-testing