【发布时间】:2021-12-17 11:00:24
【问题描述】:
当我执行类似这样的命令时:
go test \
github.com/mycompany/projectX/packageA \
github.com/mycompany/projectX/packageB \
github.com/mycompany/projectX/packageC
然后 go 将测试 packageA,然后是 packageB,然后是 packageC。是否有一个选项可以改变包测试的顺序?例如,首先测试包 C,然后测试包 A,然后测试包 B。有一个 -shuffle on 选项,但此选项仅对包内的测试进行混洗。我想打乱包裹的顺序。
【问题讨论】:
-
为什么要测试不同顺序的包?
-
@Pizzalord 从长远来看,我想为我的测试套件/环境增加稳定性。根据我的经验,当测试变得如此之多时,它们会变得如此紧密地耦合在一起,以至于将新的测试结果添加到难以修复的故障中。我认为从长远来看,由于共享的外部依赖项(例如共享数据库或 redis 服务器),包也可能会以某种方式相互耦合。 (我们也将 go 用于集成测试,而不仅仅是单元测试。)通过对包进行混洗测试,我们可以以某种方式尽快检测并消除包测试依赖关系。