是的
,测试作为goroutines执行,因此可以
同时 执行。
但是, 默认情况下 ,@ jacobsa指出,测试 不会并行运行
。要启用并行执行,您必须调用
t.Parallel()测试用例并进行
GOMAXPROCS适当设置或提供
-parallel N。
并行运行测试时,最简单的解决方案是为端口号提供一个全局切片,并为该切片中的测试和端口之间的关联提供一个全局的原子增量索引。这样,您可以控制端口号,并且每个测试都有一个端口。例:
import "sync/atomic"var ports [...]uint64 = {10, 5, 55}var portIndex uint32func nextPort() uint32 { return atomic.AddUint32(&portIndex, 1)}


