我已经为 Web API 实现了几个包,每个包都有自己的测试用例。当使用测试通过测试每个包时go test ./api/pkgname
。如果我想一次运行所有测试,go test ./api/...
测试用例总是失败。
在每个测试用例中,我使用DROP SCHEMA public CASCADE
后跟重新创建整个架构CREATE SCHEMA public
并应用所有迁移。测试套件随机报告错误,说关系/表不存在,所以我猜每个测试套件(每个包)都以某种方式并行运行,从而弄乱了数据库状态。
我试图传递一些测试标志go test -cpu 1 -parallel 0 ./src/api/...
,比如没有成功。
这里的问题可能是并行运行的测试,如果是,我该如何强制串行执行?
更新:
目前我使用这种解决方法来运行测试,但我仍然想知道是否有更好的解决方案
find <dir> -type d -exec go test {} \;