【发布时间】:2015-05-29 21:41:41
【问题描述】:
如果我有不同的包并且每个包都有一个测试文件 (pkg_test.go),我是否有办法确保它们以特定的顺序运行?
说pkg1_test.go 先被执行,然后是其余的。
我尝试使用 go 频道,但它似乎挂起。
【问题讨论】:
标签: go
如果我有不同的包并且每个包都有一个测试文件 (pkg_test.go),我是否有办法确保它们以特定的顺序运行?
说pkg1_test.go 先被执行,然后是其余的。
我尝试使用 go 频道,但它似乎挂起。
【问题讨论】:
标签: go
这并不明显,考虑到对所有包的go test ./... 触发器测试...但并行运行:请参阅“Go: how to run tests for multiple packages?”。
go test -p 1 将按顺序运行测试,但不一定按照您需要的顺序。
对按正确预期顺序列出的包调用go test 的简单脚本会更容易实现。
6 年后更新:最佳做法是不依赖测试顺序。
issue 28592 提倡将 -shuffle 和 -shuffleseed 添加到随机测试中。
CL 310033 提及:
此 CL 为测试包和
go test命令添加了一个新标志 这会随机化测试和基准测试的执行顺序。这对于识别不需要的依赖项很有用 在测试或基准函数之间。
该标志默认关闭。
- 如果
-shuffle设置为on,那么系统 时钟将用作种子值。- 如果
-shuffle设置为整数N,则N将用作种子值。在这两种情况下,都会报告种子运行失败的情况,以便稍后重现。
在commit cbb3f09 中为 Go 1.17(2021 年 8 月)挑选。
在“Benchmarking with Go”查看更多信息。
【讨论】: