在godoc可播放的例子中“找不到包”错误

时间:2016-12-26 21:14:43

标签: go

我正试图在godoc上做一个可行的例子。

  • OS X Yosemite 10.10.5
  • Go:go1.7.4 darwin / amd64

测试代码: $ GOPATH / SRC /霍格/ hoge_test.go

package hoge_test

import (
    "fmt"
    "hoge"
    "testing"
)

func ExampleHoge() {
    fmt.Println(hoge.Hoge())

    // Output:
    // hoge!!
}

测试通过:

$ go test hoge
ok      hoge    0.011s

Godoc

$ godoc -play -http=:8080

我可以在Web浏览器上看到hoge包的示例游乐场,但是当我'运行'示例时,会出现以下错误。

tmp/sandbox389904218/main.go:5:2: cannot find package "hoge" in any of:
/usr/local/go/src/hoge (from $GOROOT)
/go/src/hoge (from $GOPATH)

我设置了自己的GOPATH,但错误中显示的不是/go

我需要运行示例。

其他

我有上述错误的原因。 Godoc playable示例重定向到play.golang.org以运行代码,因此错误中的GOPATH似乎在play.golang.org环境中。

我仍然不确定如何运行我自己的pkg示例...

1 个答案:

答案 0 :(得分:1)

这是因为godoc使用golang.org/x/tools/playground工具,该工具只代理golang.org的请求。除非它们位于golang.org上发布的包中,否则您似乎无法运行示例函数。这里是github中的相关文件:https://github.com/golang/tools/blob/master/playground/common.go,这里的godoc工具引用了这个文件:https://github.com/golang/tools/blob/master/cmd/godoc/play.go