我使用ginkgo
作为测试工具,glide
作为软件包管理器。
ginkgo
要求我们安装二进制文件以自动生成测试文件。 glide
,据我所知,不支持安装二进制文件。所以,我最终使用go get
来安装二进制文件及其源文件。
问题是glide
通过扫描go文件来安装它解析的所有软件包。这意味着还安装了ginkgo
的源文件。
在编译期间,vendor
目录中的包具有优先级。因此,这会导致使用来自$GOPATH/bin
的二进制文件并使用来自vendor
目录的源文件的情况。
似乎go get
从master分支中获取文件,而glide
获取最新发布的版本。因此,二进制文件生成的测试文件与glide安装的源文件不兼容。
有没有办法防止滑动安装某些特定的包? 或者还有其他更好的方法吗?
答案 0 :(得分:2)
使用滑动,您可以指定要安装的某个版本的软件包。这是在glide.yaml
中完成的提示:该版本是VCS相关的,可以是任何可以的版本 签出或可以解析的语义版本约束 github.com/ Masterminds / semver包。例如,用Git这个 可以是分支,标记或哈希。这会有所不同,取决于什么 VCS支持。
package: github.com/YOUR/PACKAGE
import:
- package: github.com/onsi/ginkgo/ginkgo
version: master
repo: git@github.com:onsi/ginkgo.git
这将下载最新的主提交。
Here是有关使用滑行进行版本控制的更多信息。