猿问

如何在 go 框架中为不同的测试强制执行测试顺序?

如果我有不同的包并且每个包都有一个测试文件 ( pkg_test.go),有没有办法确保它们按特定顺序运行?

先说pkg1_test.go先执行,然后再执行。

我尝试使用 go 频道,但它似乎挂起。


牛魔王的故事
浏览 203回答 1
1回答

HUH函数

这并不明显,考虑go test ./...对所有包进行触发器测试......但并行运行go test -p 1 将按顺序运行测试,但不一定按您需要的顺序运行。一个简单的脚本调用go test以正确的预期顺序列出的包会更容易做到。6 年后更新:最佳实践是不依赖测试顺序。这么多问题 28592提倡添加-shuffle和-shuffleseed洗牌测试。CL 310033提到:此 CL 向测试包和go test命令添加了一个新标志,用于随机化测试和基准测试的执行顺序。这对于识别测试或基准测试函数之间不需要的依赖关系很有用。该标志默认关闭。如果-shuffle设置为,on则系统时钟将用作种子值。如果-shuffle设置为整数N,N则将用作种子值。在这两种情况下,都会报告种子运行失败,以便以后可以复制。在提交 cbb3f09 中选择了 Go 1.17(2021 年 8 月)。请参阅“使用 Go 进行基准测试”。
随时随地看视频慕课网APP

相关分类

Go
我要回答