標準ライブラリ以外のExampleがgodocでは "cannot find package" となり実行出来ない
godocで実行可能なExampleを表示したくトライしています。
Exampleの表示までは期待通り出来ているのですが、Play
ボタンをクリックするとplaygroundの出力にcannot find package
というエラーが出ます。
OS: OS X Yosemite 10.10.5
Go: go1.7.4 darwin/amd64
テストコード
$GOPATH/src/hoge/hoge_test.go
package hoge_test
import (
"fmt"
"hoge"
"testing"
)
func ExampleHoge() {
fmt.Println(hoge.Hoge())
// Output:
// hoge!!
}
テストはPASSします
$ go test hoge
ok hoge 0.011s
Godoc
$ godoc -play -http=:8080
http://localhost:8080/pkg/hoge/
でドキュメントも想定通り見られて、Exampleもplayground表示されてました。
しかしplaygroundのRun
をクリックすると、エラーが起きます。
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)
見つからないと言われているhoge
パッケージは今回作成したパッケージです。
今回開発用にGOPATHを設定していますが、上記エラーの/go
はそのGOPATHに合致していません。
どんな原因が考えられるでしょうか。
補足:
エラーの原因は分かりました。godocのplayable Exampleはplay.golang.orgに処理を委譲(redirect)している様です。つまりエラーメッセージのGOPATHはリモートサーバー上のものでした。
自前パッケージのExample実行方法については未だ不明(そもそも可能なのか?)なので、引き続き質問継続させて下さい。