为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
牛魔王的故事 2021-09-27 10:52:00
如果我有不同的包并且每个包都有一个测试文件 ( pkg_test.go),有没有办法确保它们按特定顺序运行?先说pkg1_test.go先执行,然后再执行。我尝试使用 go 频道,但它似乎挂起。
查看完整描述

1 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

这并不明显,考虑go test ./...对所有包进行触发器测试......但并行运行

go test -p 1 将按顺序运行测试,但不一定按您需要的顺序运行。

一个简单的脚本调用go test以正确的预期顺序列出的包会更容易做到。


6 年后更新:最佳实践是依赖测试顺序。
这么多问题 28592提倡添加-shuffle-shuffleseed洗牌测试。

CL 310033提到:

此 CL 向测试包和go test命令添加了一个新标志,用于随机化测试和基准测试的执行顺序。

这对于识别测试或基准测试函数之间不需要的依赖关系很有用。

该标志默认关闭。

  • 如果-shuffle设置为,on则系统时钟将用作种子值。

  • 如果-shuffle设置为整数NN则将用作种子值。

在这两种情况下,都会报告种子运行失败,以便以后可以复制。

提交 cbb3f09 中选择了 Go 1.17(2021 年 8 月)。

请参阅“使用 Go 进行基准测试”。


查看完整回答
反对 回复 2021-09-27
  • 1 回答
  • 0 关注
  • 202 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信