【问题标题】:Go absolute imports and Travis CIGo 绝对导入和 Travis CI
【发布时间】: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% 覆盖。

怎么办? :(

【问题讨论】:

  • 你知道一个包就是一个目录吗?看起来您尝试在一个目录中包含多个包,但这是行不通的。尝试将不同的包(每个包可以由多个源文件组成)移动到不同的目录中。

标签: go travis-ci


【解决方案1】:

我通过构建从 $GOPATH/src/github.com/NeilGarb/budget 到 $TRAVIS_BUILD_DIR 的符号链接解决了这个问题。

【讨论】:

【解决方案2】:

github.com/NeilGarb/budget/core 需要提供该软件包才能使代码可用。有关文档,请参阅 https://golang.org/cmd/go/#hdr-Vendor_Directories

【讨论】:

    猜你喜欢
    • 2019-02-17
    • 2016-11-08
    • 1970-01-01
    • 1970-01-01
    • 2018-03-20
    • 1970-01-01
    • 2012-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多