在 Go 中运行测试时,遇到错误“testing: warning: no tests to run”,尽管有测试功能可能会令人沮丧。以下是您可能遇到此问题的原因以及解决方法:
Go 测试函数遵循特定的命名约定:它们必须以前缀“Test”开头。如果您的测试函数名为“testNormalizePhoneNum”而不是“TestNormalizePhoneNum”,并带有大写“T”,则测试工具将忽略它。重命名函数以遵守此约定。
对于需要测试不遵循命名约定的函数的高级场景,可以使用 -run 标志在 go test 命令中。该标志允许您指定与测试函数名称匹配的正则表达式。例如,要强制执行“testNormalizePhoneNum”:
go test -run=testNormalizePhoneNum
“没有要运行的测试”错误的另一个潜在原因是未包含您的测试文件在测试套件中。确保您的 main_test.go 文件与 main.go 在同一目录中,并且测试文件的名称以“_test.go”结尾。
如果包名称在你的 main_test.go 文件与 main.go 中的包名不匹配,测试工具将无法识别测试函数。确保两个文件中的包名称相同。
测试函数必须具有特定的签名。它应该采用 *testing.T 类型的单个参数,并且不应该返回任何内容。如果您的测试函数不满足此要求,测试工具将不会将其视为有效的测试函数。
通过遵守这些准则,您可以确保您的测试函数被测试正确识别并执行工具,使您能够有效地测试您的 Go 代码。
以上是为什么即使测试函数存在,Go 也会报告'测试:警告:没有要运行的测试”?的详细内容。更多信息请关注PHP中文网其他相关文章!