无法在membersrvc / ca

时间:2016-07-01 06:55:11

标签: hyperledger

我已经分叉了hyperledger / fabric项目,在我的repo中,我尝试使用以下命令运行ECA的单元测试: 但是我收到以下错误:

  

流浪@ hyperledger-devenv的:v0.0.10-37b6688:/opt/gopath/src/github.com/hyperledger/fabric/membersrvc/ca$   去测试eca_test.go
  命令行论点
   eca_test.go:30:2:   找不到包“command- / vendor /github.com/golang/protobuf/proto”   在任何一个:
          /opt/go/src/command-/vendor/github.com/golang/protobuf/proto(来自$ GOROOT)
          /opt/gopath/src/command-/vendor/github.com/golang/protobuf/proto(来自   $ GOPATH)
  FAIL命令行参数[setup failed]

类似地,当我尝试运行CA单元测试时,我收到以下错误:

  

vagrant @ hyperledger-devenv:v0.0.10-37b6688:/opt/gopath/src/github.com/hyperledger/fabric/membersrvc/ca$ go test ca_test.go
  命令行论点
  ca_test.go:28:2:找不到   包“command- / vendor / github.com / spf13 / viper”中的任何一个:           /opt/go/src/command-/vendor/github.com/spf13/viper(来自$ GOROOT)
          /opt/gopath/src/command-/vendor/github.com/spf13/viper(来自> $ GOPATH)
   FAIL命令行参数[setup failed]

几天前,

这些使用对我来说,但是在我使用来自hyperledger / project的最新更改更新我的fork后,我无法运行测试

这是我的GOPATH的价值:

  

vagrant @ hyperledger-devenv:v0.0.10-37b6688:/opt/gopath/src/github.com/hyperledger/fabric$ echo $ GOPATH / opt / gopath

我不确定为什么golang构建系统在查找导入的包时会将“command- / vendor”附加到路径中。有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

根据文档go test期望包名称作为参数。 如果您运行go test .并执行此程序包的所有测试,那么测试应该没有问题。

可以运行go test eca_test.go,但在这种情况下,您必须指定构建'eca_test'所需的所有其他文件。有关详细信息,请参阅“Please see this discussion on why not to cast the return value of malloc() and family in C.”。

如果你想从这个包中运行一个测试,最好使用go test . -run TestNewECA “TestNewECA”是eca_test.go中测试函数的名称,而不是文件名。