草庐IT

test-network

全部标签

go build 有效但 go test 没有

下面是我的项目结构:/user/home/go/src/github.com/my_go_proj/main.go/mypackage/service.go/service_test.goGOPATHpointsto/user/home/gocd/user/home/go/src/github.com/my_go_projgobuild--->Thisworksandcreatesthe`my_go_proj`executable.gotest?github.com/my_go_proj[notestfiles]gotestgithub.com/my_go_proj/mypackage

networking - 尝试在 go 中实现端口扫描器

我最近开始学习围棋。唯一的原因是goroutine似乎只存在于这种语言中(我有java背景,老实说,永远不会完全切换到go)。我想实现一个简单的端口扫描器,它可以在给定的网络范围内找到每个http服务器(打开端口80的主机)。以下是我的做法:packagemainimport("net""fmt""regexp""strconv""time")//nexttwofunctionsareshamelesslycopiedfromsomewherefuncip2long(ipstrstring)(ipuint32){r:=`^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\

unit-testing - 我如何在测试中模拟 Go 函数?

我在StackOverflow上阅读了一些关于如何模拟time.Now()等函数的问题。解决方案似乎是编写一个实现特定接口(interface)的结构,然后在测试中传入该模拟。有更好的方法吗?由于在Golang中没有足够好的依赖注入(inject)容器实现,我不想手动传递结构,或者创建一个内部只有这样的结构:func(sMyStruct)Now(){returntime.Now()}因为,首先,我无法测试这个函数。当你处理其中没有变量的一行时,它可能什么都不是,但我有一个连接到TCP端口的函数。做这样的事情需要我为它使用的所有东西创建适配器(例如net.Dial()、time.Now(

unit-testing - 在 GO 中测试 - 项目包中的代码覆盖率

我有一个关于在Go(lang)项目中生成代码覆盖率的问题。我有这个简单的结构:ROOT/config/handlers/lib/models/router/main.goconfig包含JSON格式的配置和一个简单的config.go读取和解析JSON文件并填充随后使用的Config结构初始化数据库连接时。handlers包含controllers(即router/routes.go中描述的相应METHOD+URL的处理程序)。lib包含一些数据库、请求响应器和记录器逻辑。models包含要从JSON和DB映射到的结构及其函数。最后router包含路由器和路由定义。基本上只是通过测试一

networking - 在写消息之前接受消息

我有一台服务器监听2个端口并在这2个端口之间传输消息。唯一的问题是每个客户端(或每个端口)必须先提交一条消息,然后才能接收到另一个端口发送的先前消息。例如,如果客户端1说“你好”,客户端2将不会收到消息,除非他先发送一条消息。我想找到一种方法使每个客户端在发送新消息之前都必须接收到以前的消息。(由于客户端1在客户端2说些什么之前不会收到任何内容,因此我计划向其发送一个包含占位符文本的字符串。)谁能帮我解决这个问题?我尝试将我的监听代码和为每个客户编写消息的代码放入他们自己的go例程中,但这并没有完成工作。任何帮助将不胜感激。这是我的代码:服务器packagemainimport("fm

unit-testing - 如何在 Go 中将测试标记为不确定?

这个问题在这里已经有了答案:HowToWritePendingTestsInGo(1个回答)关闭6年前。在Go中编写测试时,如何将测试标记为不确定,即存在,但既不成功也不失败,例如因为它还没有实现?我有Node.js背景,例如在Mocha(Node.js的测试运行器)中,您可以定义一个没有实现的测试,然后Mocha将此测试标记为pending。你如何用Go做到这一点?(如果有任何区别,我在gotest之上使用gocheck。)

networking - flannel错误初始化网络失败打开tun设备失败

我是第一次使用flannel,我正在使用两个运行etcd的节点(Ubuntu14.04)对其进行测试。两个节点的ip地址分别是192.168.0.124(node1)和192.168.0.127(node2),可以互相ping通没有问题。我在etcd中配置了flannel网络如下:在node1上:etcdctlset/coreos.com/network/config'{"Network":"10.1.15.0/16"}'在node2上:etcdctlset/coreos.com/network/config'{"Network":"10.1.20.0/16"}'但是,每当我在任一节点

unit-testing - 使用 Gorilla MUX 对 App Engine 进行单元测试

我想为GoogleAppEngine中的处理程序编写测试,这些处理程序使用Gorillamux从请求URL读取变量。我从documentation了解到您可以创建一个虚假的上下文并请求用于测试。我在测试中直接调用处理程序,但处理程序没有按预期看到路径参数。funcTestRouter(t*testing.T){inst,_:=aetest.NewInstance(nil)//ignoringerrorforbrevitydeferinst.Close()//triedaddingthislinebecausethetestwouldnotworkwithorwithoutithttpt

networking - GoLang 监听端口范围

我正在尝试让一个程序在Go中的端口范围(520多个端口;TCP)上进行监听。不过,好像不行。它会听一些然后停止。我想做一个递增1的for循环,然后像这样调用一个监听函数:fori:=;i;i++{ipaddr:=fmt.Sprintf("8.8.8.8:%d",i)ipaddrnew,_:=parseAddress(ipaddr)golistener(ipaddrnew)}这就是我一直在尝试做的,但在尝试了几次之后就停止了。更新:这是我刚刚运行的测试:我将代码更改为以下内容:fori:=14480;i它给出了以下响应:1448014481144821448314484144851448

networking - Golang数组和 map 通过网络同步

我需要通过持久网络连接同步2个程序(客户端和服务器)的内部状态。第一个想法是为此实现一个自定义协议(protocol),您是否可以想到任何替代方案?有哪些图书馆可以在此过程中提供帮助?内部状态由很多maps和slice组成,当slice/map内部的某些结构发生变化时,可以将其作为一个整体传递 最佳答案 packageencoding/gob可能对golang有帮助 关于networking-Golang数组和map通过网络同步,我们在StackOverflow上找到一个类似的问题: