【发布时间】:2022-05-24 05:29:47
【问题描述】:
运行go test 时,它会运行以_test.go 结尾的文件,方法是运行以TestXxx 格式开头的函数并使用(*t testing.T) 模块。我想知道_test.go 文件中的每个函数是否同时运行,或者它是否最终单独运行每个函数?它是否为每个人创建了一个例行程序?如果它确实为每个人创建了一个 goroutine,我可以以某种方式监控 goroutine 吗?有没有可能做类似golibrary.GoRoutines() 的事情并为每个实例获取一个实例并以某种方式或类似的方式监控它们?
注意:本题假设你使用的是 go (testing) 自带的测试框架。
【问题讨论】:
-
你想达到什么目的?
-
所以这就是事情......我拥有的每个 TestXXX 函数都会创建一个与某个端口号连接的进程。如果他们都尝试连接到同一个端口或做类似的奇怪事情,那就太奇怪了。我想控制它们连接的端口号,并通过一些原子增量或终止每个进程使其唯一,这样我就不需要多个不同的端口号。不过,我现在也很想知道如何监控 go-routines。
标签: unit-testing go