Go执行go test提示no tests to run但已编写测试函数是什么原因
测试未运行的核心原因
Go 语言的go test工具对测试函数有严格的命名规则要求:
- 测试函数必须以**大写
Test**作为名称前缀,后缀通常为要测试的业务函数名 - 函数必须接收唯一的
*testing.T类型参数 - 函数不能有返回值
你当前的测试函数命名为testNormalizePhoneNum,首字母为小写t,不符合测试函数的命名规则,因此go test不会将其识别为需要执行的测试用例,就会输出no tests to run的警告。
修复方案
仅需要将测试函数名的首字母改为大写即可,修改后的函数定义如下:
func TestNormalizePhoneNum(t *testing.T) { // 原有测试逻辑不需要改动 }
修改后重新执行go test命令,即可正常运行所有测试用例。因为你当前normalizePhoneNum函数固定返回空字符串,执行后会抛出所有测试用例不匹配的报错,属于正常现象,完善normalizePhoneNum的实现逻辑即可修复测试报错。
内容的提问来源于stack exchange,提问作者Sherlock
相关产品推荐
相关产品推荐

