在Go中给出以下代码文件(名为server.go):
package glimpse
func SplitHeader() string {
return "hi there"
}
和随附的测试文件(server_test.go):
package glimpse
import (
"testing"
)
func TestSplitHeader(t *testing.T) {
answer := SplitHeader()
if answer == "" {
t.Error("No return value")
}
}
为什么是以下命令: go test server_test.go
返回
# command-line-arguments
./server_test.go:9: undefined: SplitHeader
我当然错过了一些灾难性的事情。
答案 0 :(得分:6)
仅限使用
$ go test
从包目录中执行测试。如果将特定文件命名为go test
的参数,则仅将考虑将这些文件用于构建测试二进制文件。这解释了“未定义”错误。
作为替代方案,请使用“导入路径”作为go test
的参数,例如
$ go test foo.com/glimpse