【发布时间】:2016-12-06 00:22:07
【问题描述】:
我在http://github.com/NeilGarb/budget 建立了一个公共 golang 项目,其中包含子包 core 和 api。我将项目保存在 $GOPATH/src/github.com/NeilGarb/budget 中。
我想使用 Travis CI 运行 core 的 ginkgo 测试,但我在我的测试包中使用绝对导入,而 Travis 抱怨它找不到所述包。
例如,我的测试包括:
package user_test
import (
. "github.com/NeilGarb/budget/core"
)
在我的本地机器上运行 ant 工作正常,但是当 travis 尝试运行测试时,我得到:
core-test:
[exec] Failed to compile core:
[exec]
[exec] can't load package: package github.com/NeilGarb/budget/core: cannot find package "github.com/NeilGarb/budget/core" in any of:
[exec] /home/travis/.gvm/gos/go1.2/src/pkg/github.com/NeilGarb/budget/core (from $GOROOT)
[exec] /home/travis/.gvm/pkgsets/go1.2/global/src/github.com/NeilGarb/budget/core (from $GOPATH)
[exec]
[exec] Ginkgo ran in 714.967041ms
[exec] Test Suite Failed
我尝试在我的测试中使用相对导入(即“../core”),它有效,但我的覆盖率始终显示 0% 覆盖。
怎么办? :(
【问题讨论】:
-
你知道一个包就是一个目录吗?看起来您尝试在一个目录中包含多个包,但这是行不通的。尝试将不同的包(每个包可以由多个源文件组成)移动到不同的目录中。