草庐IT

test-network

全部标签

testing - 测试 '-timeout 0' 未反射(reflect)在执行中

我正在使用Go1.9.2版本并使用-timeout0标志调用禁用超时的测试。gotestmy_module-runTestModule-v--race-timeout0但是测试执行在默认超时10m后超时。***Testkilled:rantoolong(10m0s). 最佳答案 它是test.timeout即gotestmy_module-runTestModule-v--race-test.timeout0 关于testing-测试'-timeout0'未反射(reflect)在执行中

network-programming - Go - net.LookupAddr 不执行

在我添加接受输入地址的功能之前一切正常。将IP地址拆分为3段并将其交给getHostName函数后,程序会在函数net调用后跳过“全部/包含函数”。LookupAddr(ip).packagemainimport("fmt""net""strconv""strings")funcgetHostName(hchanstring,ipAdressestring,nint){ip:=ipAdresse+strconv.Itoa(n)addr,ok:=net.LookupAddr(ip)fmt.Println(ok)ifok==nil{h 最佳答案

unit-testing - 真正的单元测试总是可以并行运行吗?

背景:我正在编写大量go代码,使用gotest工具和提供的"testing"包进行测试。我所做的大部分测试都是TDD规程中的单元测试。这些被测试的“单元”永远不允许依赖于有状态的外部性,如持久存储、网络跃点等,但通常在“构造函数/构建器”函数中接收这些外部性的虚假内存实现(是的,我知道它们不是传统意义上的构造函数)。问题:gotest工具总是以相同的确定顺序运行测试函数,这一直困扰着我。在某些情况下,这允许竞争条件隐藏在代码中。找到这些错误的一种方法是设置-race标志。另一个可能是始终并行运行单元测试......问题:是否存在曾经孤立单元测试不能或不应该总是并行运行的情况(使用-并行

networking - 从一个端口向另一个端口发送消息

我有一台服务器和两个客户端,每个客户端都使用自己的端口。当客户端向服务器发送消息时,服务器将其回显给发送方。然后,服务器也应该将消息发送给其他客户端。这是我遇到问题的地方。我相信我可能在writeMessage()中设置了错误的连接,但我不完全确定。目前,我的功能只是为了调试目的而尝试在端口8080上写入客户端2。服务器:packagemainimport("fmt""log""net")varmessagestring=""funcmain(){fmt.Println("TheserverislisteningonPort3000and8080")listener,err:=net.

testing - 使用测试包在 golang 中导入周期

我正在尝试重构一些测试代码,并且在两个包中我需要做同样的事情(连接到数据库)。我正在获取一个导入周期。我明白为什么我不能这样做,但我想知道最好的解决方法是什么。一些细节,我有三个包:testutils、client、engine。在引擎中,我定义了一个接口(interface)和实现(均已导出)。packageenginetypeinterfaceQueryEngine{//...}typestructMagicEngine{//...}然后在testutils包中我将创建一个MagicEngine并尝试返回它。packagetestutilsfuncCreateAndConnect(

testing - Golang 测试在详细模式下运行时给出不一致的结果

我的_test.go文件中有一个测试函数,其中包含一堆子测试。它看起来像这样:funcMyTest(t*testing.T){t.Run("Subtest1",func(t*testing.T){...})t.Run("Subtest2",func(t*testing.T){...})}我用gotest运行测试并得到PASSokpackage_path9.137s但是,我希望在结果中列出我所有的子测试。看着Run在$GOROOT/src/testing/testing.go中发挥作用看起来我需要测试为chatty.所以我尝试通过gotest-v运行测试但我仍然没有得到想要的输出。相反,

networking - SSH 监听器未关闭

我正在尝试编写一个go应用程序,它允许我使用gossh库在Windows机器和Linux机器之间执行反向ssh隧道。在这样做的过程中,我在远程机器上创建了一个监听器,如下:remoteListener,错误:=sshClient.Listen(“tcp”,remoteString)其中sshClient是ssh.Client类型的对象,并配置为连接到远程机器。这里的问题是,当Linux机器上的sshd进程中断与应用程序的连接时,sshListener在远程机器上仍然存在。因此,与应用程序的重新连接失败,因为监听器已在远程计算机上的同一端口上运行。我该如何解决这个问题?ssh库是否允许我

unit-testing - os.FileInfo 模拟不匹配

在我的一个golang项目中,我为测试用例模拟了os.FileInfo。我不确定我是否正确理解了golang的接口(interface)处理。据我所知,以下代码应该可以工作,但我收到一个编译器错误,指出接口(interface)不匹配。我修改了thisgo-doc示例,以防您想自己测试一下。packagemainimport("fmt""io/ioutil""log")typefileinterface{Name()string}funcreadFiles()[]file{files,err:=ioutil.ReadDir(".")iferr!=nil{log.Fatal(err)}r

testing - 将 revel 测试组织成子包

我们目前正在与一个revel项目合作,测试的数量已经失控。我想在tests目录下创建一些包,以将Controller测试与模型测试等分开(例如tests/controllers/,tests/型号/等)。当我执行此操作时,revel测试命令将停止查看这些文件。我在网上找到了使用...跟踪我的测试命令的建议,但是当我这样做时,我收到一条错误消息,提示它无法导入我的项目。这是可能的,还是所有测试文件都必须在tests目录中?如果可能,您如何在子包中运行测试? 最佳答案 您可以将测试本身移动到一个可导入的包中(即不在_test.go文件中

unit-testing - 处理程序单元测试的模拟功能

我被模拟测试困住了,这是我的处理程序路线:r.Handle("/users/{userID}",negroni.New(negroni.HandlerFunc(validateTokenMiddleware),negroni.Wrap(http.HandlerFunc(func(whttp.ResponseWriter,r*http.Request){getUserDetailsHandler(w,r,db)})),)).Methods("GET")这是我的处理程序:funcgetUserDetailsHandler(whttp.ResponseWriter,r*http.Reques