草庐IT

test_proc

全部标签

unit-testing - Golang : tests and working directory

我正在为我的Go应用程序编写一些单元测试。然而,测试失败,因为它找不到配置文件。通常二进制文件会在conf/*.conf路径下的工作目录中查找配置文件。我认为浏览到有conf/的目录并在其中运行gotest可以解决它,但它仍然报告文件系统找不到路径指定。如何告诉gotest使用某个目录作为工作目录,以便实际执行测试? 最佳答案 您也许可以使用Caller来获取当前测试源文件的路径,如下所示:packagesampleimport("testing""runtime""fmt")funcTestGetFilename(t*testin

unit-testing - 如何在go(golang)中测试未导出的(私有(private))函数?

我对在go中为“未导出(私有(private))函数”创建单元测试很感兴趣。但是,基本上很难在测试包中创建单元测试,因为我必须将它们“公开”。最终,这违背了他们私密的全部意义。关键是这些辅助函数有助于模块化,现在它们是模块化的,如果能够为它们创建单元测试而不使除测试包之外的所有人都可以使用它们,那就太好了,它们不是应该访问的函数或由测试套件或实际包本身以外的任何其他人使用。有什么建议吗?是否可以仅导出到自己的包和1个额外的包或类似的东西? 最佳答案 在包中创建一个测试文件library_test.gopackagemypkgfunc

testing - 使用 go test 跳过一些测试

是否可以使用gotest跳过/排除某些测试?我有相当多的集成类型测试,它们调用作为标准go测试编写的rest服务,并使用gotest运行。开发新功能时,有时跳过一些测试很有用,例如,如果新功能尚未部署在测试服务器上并且我仍想运行所有现有测试(那些新测试除外)新功能)。我知道-run,但我不想指定我想要运行的所有测试,那将是一个很长的列表。同时,我还无法编写排除测试的正则表达式。另一种选择是不提交不在同一分支中运行的测试,但如果我可以指定要排除的内容会更容易。 最佳答案 Testingpackage有SkipNow()和Skip()方

testing - 如何测试 panic ?

我目前正在思考如何编写测试来检查给定的代码是否出现panic?我知道Go使用recover捕捉panic,但与Java代码不同的是,您无法真正指定在发生panic时应该跳过哪些代码或您有什么。所以如果我有一个函数:funcf(t*testing.T){deferfunc(){ifr:=recover();r!=nil{fmt.Println("Recoveredinf",r)}}()OtherFunctionThatPanics()t.Errorf("Thecodedidnotpanic")}我无法确定是OtherFunctionThatPanics发生了panic并且我们恢复了,还是

testing - 如何在 Golang 中测试 map 的等价性?

我有一个像这样的表驱动测试用例:funcCountWords(sstring)map[string]intfuncTestCountWords(t*testing.T){vartests=[]struct{inputstringwantmap[string]int}{{"foo",map[string]int{"foo":1}},{"foobarfoo",map[string]int{"foo":2,"bar":1}},}fori,c:=rangetests{got:=CountWords(c.input)//TODOtestwhetherc.want==got}}我可以检查长度是否相

testing - 如何 `go test` 我项目中的所有测试?

gotest命令只覆盖一个目录中的*_test.go文件。我想gotest整个项目,这意味着测试应该覆盖目录./中的所有*_test.go文件以及目录./.下的每个子树目录执行此操作的命令是什么? 最佳答案 这应该运行当前目录及其所有子目录中的所有测试:$gotest./...这应该运行给定特定目录的所有测试:$gotest./tests/..../unit-tests/..../my-packages/...这应该运行所有带有前缀为foo/:的导入路径的测试$gotestfoo/...这应该运行所有以foo为前缀的导入路径:$go

unit-testing - Go 中的模拟函数

我对依赖关系感到困惑。我希望能够用模拟函数调用替换一些函数调用。这是我的代码片段:funcget_page(urlstring)string{get_dl_slot(url)deferfree_dl_slot(url)resp,err:=http.Get(url)iferr!=nil{return""}deferresp.Body.Close()contents,err:=ioutil.ReadAll(resp.Body)iferr!=nil{return""}returnstring(contents)}funcdownloader(){dl_slots=make(chanbool,

python - 仅使用 proc 获取本地网络接口(interface)地址?

如何仅使用proc获取所有网络接口(interface)的(IPv4)地址?经过大量调查后,我发现了以下内容:ifconfig使用SIOCGIFADDR,这需要打开套接字并提前了解所有接口(interface)名称。它也没有记录在Linux的任何手册页中。proc包含/proc/net/dev,但这是一个接口(interface)统计列表。proc包含/proc/net/if_inet6,这正是我需要的,但对于IPv6。通常接口(interface)很容易在proc中找到,但实际地址很少使用,除非是某些连接的明确部分。有一个名为getifaddrs的系统调用,这是您希望在Windows

python - 如何从 subprocess.Popen() 获取输出。 proc.stdout.readline() block ,没有数据打印出来

我想要执行Test_Pipe.py的输出,我在Linux上尝试了以下代码,但没有成功。Test_Pipe.pyimporttimewhileTrue:print"Someting..."time.sleep(.1)Caller.pyimportsubprocessassubpimporttimeproc=subp.Popen(["python","Test_Pipe.py"],stdout=subp.PIPE,stdin=subp.PIPE)whileTrue:data=proc.stdout.readline()#block/waitprintdatatime.sleep(.1)pr

linux - 如何增加/proc/pid/cmdline 4096 字节限制?

对于类路径很长的Java应用程序,使用ps时,我看不到arg列表末尾附近指定的主类。我认为这源于我的Ubuntu系统对/proc/pid/cmdline的大小限制。如何提高此限制? 最佳答案 查看Java进程jps很有用。这将为您提供主类和jvm参数:jps-vl|grep 关于linux-如何增加/proc/pid/cmdline4096字节限制?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/q