【问题标题】:How to enforce testing order for different tests in a go framework?如何在 go 框架中强制执行不同测试的测试顺序?
【发布时间】:2015-05-29 21:41:41
【问题描述】:

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

pkg1_test.go 先被执行,然后是其余的。

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

【问题讨论】:

    标签: go


    【解决方案1】:

    这并不明显,考虑到对所有包的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”查看更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-22
      • 2020-04-25
      • 2012-08-18
      • 1970-01-01
      • 2018-03-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多