考虑到go test ./...会触发所有软件包上的测试,但这并不明显......但会并行运行:请参见“Go: how to run tests for multiple packages?“。 go test -p 1将按顺序运行测试,但不一定按照您需要的顺序。 一个简单的脚本在以正确的预期顺序列出的包上调用go test会更容易实现。 6年后更新:最好的做法是“不”依赖于测试顺序。 所以issue 28592主张将-shuffle和-shuffleseed添加到shuffle测试中。 CL 310033提到: 该CL向测试包和go test命令添加了一个新标志,该命令随机化测试和基准测试的执行顺序。 这对于识别测试或基准测试函数之间不需要的依赖关系非常有用。 默认情况下,该标志处于关闭状态。
2条答案
按热度按时间izkcnapc1#
考虑到
go test ./...
会触发所有软件包上的测试,但这并不明显......但会并行运行:请参见“Go: how to run tests for multiple packages?“。go test -p 1
将按顺序运行测试,但不一定按照您需要的顺序。一个简单的脚本在以正确的预期顺序列出的包上调用
go test
会更容易实现。6年后更新:最好的做法是“不”依赖于测试顺序。
所以issue 28592主张将
-shuffle
和-shuffleseed
添加到shuffle测试中。CL 310033提到:
该CL向测试包和
go test
命令添加了一个新标志,该命令随机化测试和基准测试的执行顺序。这对于识别测试或基准测试函数之间不需要的依赖关系非常有用。
默认情况下,该标志处于关闭状态。
-shuffle
设置为on
,则系统时钟将用作种子值。-shuffle
设置为整数N
,则N
将用作种子值。在这两种情况下,将报告失败运行的种子,以便稍后可以重现。
2021年8月,Go 1.17在commit cbb3f09中被选中。
更多信息请访问“Benchmarking with Go“。
ruyhziif2#
我找到了一个解决这个问题的方法。我将我的测试文件命名为:
A B C将确保它们按顺序运行。