我正在尝试理解如何将go项目构建为存储在单独源代码存储库中的子模块(在主机example.com上),然而,当我这样做时,我不确定如何运行模块中的测试。我在下面的例子中做错了什么,任何帮助都是非常感谢的!
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时,没有人在他们的模块中这样做。所以我不明白我做错了什么。
发布于 2016-08-18 18:53:57
你的产品线
import "tool"就是违法者。标准库中没有打包工具,并且您的打包工具的导入路径为example.com/john/tool。
只需删除导入即可。不需要导入当前的包(这是不可能的,因为这将是一个(退化的)导入周期)。
https://stackoverflow.com/questions/39015621
复制相似问题