草庐IT

test-protobuf

全部标签

testing - 如何对项目中除 vendor 包之外的所有测试文件运行 go test

我的项目文件夹包含:MakefileREADME.mdcomponent/driver/service/vendor/worker/我想对所有测试文件运行gotest,例如foobar_test.go文件,vendor包中的测试文件除外。我最接近成功的是gotest./...但其中包括vendor测试文件。我在文档中看到您可以将正则表达式传递给-run选项,但我无法让它正常工作。例如,我尝试了gotest./*,但我得到了一堆can'tloadpackageerrors。执行此操作的最佳方法是什么? 最佳答案 -run模式只匹配测试

testing - 如何对项目中除 vendor 包之外的所有测试文件运行 go test

我的项目文件夹包含:MakefileREADME.mdcomponent/driver/service/vendor/worker/我想对所有测试文件运行gotest,例如foobar_test.go文件,vendor包中的测试文件除外。我最接近成功的是gotest./...但其中包括vendor测试文件。我在文档中看到您可以将正则表达式传递给-run选项,但我无法让它正常工作。例如,我尝试了gotest./*,但我得到了一堆can'tloadpackageerrors。执行此操作的最佳方法是什么? 最佳答案 -run模式只匹配测试

go - 可以将 protobuf 编码消息发送到已分配的字节数组而无需复制吗?

我正在通过自定义数据包实现客户端服务器通信。我正在使用Gonet.conn。可以拨号tcp/unixschemes,非常方便。我使用protocolbuffer来定义我的消息。我定义了一个包,其中包含length和buffertypePacketstruct{lengthuint32buffer[]byte}API函数是这样的:func(api*API)Send(m*proto.Message)错误func(api*API)Receive(p*Packet)错误以send函数为例,它接收一个protobuf消息,将其编码成Packet。并将其写入net.conn。这是Send函数的简化

go - 可以将 protobuf 编码消息发送到已分配的字节数组而无需复制吗?

我正在通过自定义数据包实现客户端服务器通信。我正在使用Gonet.conn。可以拨号tcp/unixschemes,非常方便。我使用protocolbuffer来定义我的消息。我定义了一个包,其中包含length和buffertypePacketstruct{lengthuint32buffer[]byte}API函数是这样的:func(api*API)Send(m*proto.Message)错误func(api*API)Receive(p*Packet)错误以send函数为例,它接收一个protobuf消息,将其编码成Packet。并将其写入net.conn。这是Send函数的简化

ProtoBuf定义map类型

语法message消息名{mapname=n;}注意map字段不能使用repeated关键字修饰。key可以是任何整数或字符串类型(除浮点类型和字节之外的任何标量类型),枚举不是有效的key。value 可以是除另一个映射之外的任何类型。例子messagemsg{mapattrs=1;}

go - MarshalToSizedBuffer 用于编译 protobuf 并尝试在其他包中使用它时未定义的结构

我正在使用gogo/protobuf为gRPC调用生成protobuf,但最近由于未正确生成编码方法,它们开始失败。错误看起来像这样:service/v1/service.pb.go:1347:27:m.ListMeta.MarshalToSizedBufferundefined(type*"k8s.io/apimachinery/pkg/apis/meta/v1".ListMetahasnofieldormethodMarshalToSizedBuffer)我已经尝试重新安装go和goenv,使用不同的gvm,并恢复对proto文件的更改。这个问题似乎在我们的proto文件的最后一个

go - MarshalToSizedBuffer 用于编译 protobuf 并尝试在其他包中使用它时未定义的结构

我正在使用gogo/protobuf为gRPC调用生成protobuf,但最近由于未正确生成编码方法,它们开始失败。错误看起来像这样:service/v1/service.pb.go:1347:27:m.ListMeta.MarshalToSizedBufferundefined(type*"k8s.io/apimachinery/pkg/apis/meta/v1".ListMetahasnofieldormethodMarshalToSizedBuffer)我已经尝试重新安装go和goenv,使用不同的gvm,并恢复对proto文件的更改。这个问题似乎在我们的proto文件的最后一个

testing - Go,Golang : travis error for main program, go get -v

在我的repo的子目录中,我有一些带有packagemain的脚本来显示我的包的一些示例用法。但这在Travis上进行测试时会出现以下错误。repoexample-dirsub-dirmain.go//thisgivesmeerrorlikethefollowinggithub.com/~/directory-for-main-program命令“goget-v./...”失败。正在重试,第2个,共3个。我只在Travis中看到这个错误,在使用gotest的本地机器中看不到。有没有办法把主程序分开,还能通过Travis测试? 最佳答案

testing - Go,Golang : travis error for main program, go get -v

在我的repo的子目录中,我有一些带有packagemain的脚本来显示我的包的一些示例用法。但这在Travis上进行测试时会出现以下错误。repoexample-dirsub-dirmain.go//thisgivesmeerrorlikethefollowinggithub.com/~/directory-for-main-program命令“goget-v./...”失败。正在重试,第2个,共3个。我只在Travis中看到这个错误,在使用gotest的本地机器中看不到。有没有办法把主程序分开,还能通过Travis测试? 最佳答案

testing - 在 Go 中使用反射检查兼容类型

虽然我知道在Go中panic可能不是惯用的,但我想测试以确保函数在特定条件下而不是在其他条件下panic。函数示例。funcPanicOnErr(potentialErrerror){ifpotentialErr!=nil{panic(potentialErr)}}下面是一个检查函数是否会panic的实现。funcInvocationCausedPanic(finterface{},params...interface{})bool{//Obtainthefunction'ssignature.reflectedFunc:=reflect.ValueOf(f)funcType:=ref