我已经为 Web API 实现了多个包,每个包都有自己的测试用例。当使用每个包进行测试时go test ./api/pkgname
测试通过。如果我想一次运行所有测试go test ./api/...
测试用例总是失败。
在每个测试用例中,我使用以下命令重新创建整个架构DROP SCHEMA public CASCADE
其次是CREATE SCHEMA public
并应用所有迁移。测试套件随机报告错误,说关系/表不存在,所以我猜每个测试套件(每个包)都以某种方式并行运行,从而弄乱了数据库状态。
我尝试传递一些测试标志,例如go test -cpu 1 -parallel 0 ./src/api/...
没有成功。
这里的问题是否是并行运行的测试,如果是,我如何强制串行执行?
Update:
正如其他人指出的那样, -parallel 不能完成这项工作(它只能在包内工作)。但是,您可以使用标志 -p=1 来连续运行包测试。此处记录了这一点:
http://golang.org/src/cmd/go/testflag.go http://golang.org/src/cmd/go/testflag.go
但(afaict)不在命令行上,去帮助等等。我不确定它是否会继续存在(尽管我认为如果它被删除,-parallel应该被修复。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)