0
別のソースコードリポジトリ(ホストexample.com
)に格納されたサブモジュールにgoプロジェクトを構成する方法を理解しようとしていますが、そうした場合、モジュール内のテストの実行方法がわかりません。次の例で何が間違っているのですが、どんな助けでも大歓迎です!!プロジェクトのモジュール内でテストするためにインポートをどのように構造化しますか?
mkdir -p src/example.com/john/tool
echo "package tool" >> src/example.com/john/tool/book.go
echo "" >> src/example.com/john/tool/book.go
echo "type Book struct {" >> src/example.com/john/tool/book.go
echo " Title string" >> src/example.com/john/tool/book.go
echo "}" >> src/example.com/john/tool/book.go
echo "" >> src/example.com/john/tool/book.go
echo "package tool" >> src/example.com/john/tool/book_test.go
echo "" >> src/example.com/john/tool/book_test.go
echo "import (" >> src/example.com/john/tool/book_test.go
echo " \"tool\"" >> src/example.com/john/tool/book_test.go
echo " \"testing\"" >> src/example.com/john/tool/book_test.go
echo ")" >> src/example.com/john/tool/book_test.go
echo "" >> src/example.com/john/tool/book_test.go
echo "func TestBook(t *testing.T) { }" >> src/example.com/john/tool/book_test.go
echo "" >> src/example.com/john/tool/book_test.go
export GOPATH=`pwd`
go test example.com/john/tool
私はこのテストを実行すると、これは私が見ていますエラーです:明らか
# example.com/john/tool
src/example.com/john/tool/book_test.go:4:3: cannot find package "tool" in any of:
/usr/local/go/src/tool (from $GOROOT)
/Users/john/app/src/tool (from $GOPATH)
FAIL example.com/john/tool [setup failed]
book_test.go
あなたはおそらく完全なパスに置くことができる「ツール」パッケージをインポートすることはできません、しかし私がgithubを見るとき、誰も彼らのモジュールでそれをしません。だから、私が間違っていることを理解していない。
import "tool"
なぜパッケージ "tool"を_test.goファイルから再度インポートしていますか?それは必要ではなく、それは他の「ツール」パッケージを探しているときに問題を作り出しています。 book_test.goは既に作成しているツールパッケージの一部です。 –