testing - 包测试的串行执行

标签 testing go

我已经为 Web API 实现了几个包,每个包都有自己的测试用例。当使用 go test ./api/pkgname 测试每个包时,测试通过。如果我想用 go test ./api/... 一次运行所有测试,测试用例总是失败。

在每个测试用例中,我使用 DROP SCHEMA public CASCADECREATE SCHEMA public 重新创建整个架构并应用所有迁移。测试套件随机报告错误,说关系/表不存在,所以我猜每个测试套件(每个包)以某种方式并行运行,从而弄乱了数据库状态。

我试图传递一些测试标志,例如 go test -cpu 1 -parallel 0 ./src/api/... 没有成功。

这里的问题可能是并行运行的测试,如果是,我该如何强制串行执行?

更新:

目前我使用此解决方法来运行测试,但我仍然想知道是否有更好的解决方案

find <dir> -type d -exec go test {} \;

最佳答案

正如其他人指出的那样,-parallel 不能完成这项工作(它只适用于包中)。但是,您可以使用标志 -p=1 来连续运行包测试。这记录在这里:

http://golang.org/src/cmd/go/testflag.go

但是(afaict)不在命令行上,去帮助等等。我不确定它是否会留下来(尽管我认为如果它被删除,-parallel 应该被修复。)

关于testing - 包测试的串行执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15721238/

相关文章:

testing - 如何按顺序运行 golang 测试?

angularjs - Jenkins chromedriver Protractor 问题

ruby-on-rails - 我怎样才能清除在父 Controller 中定义的方法?

pointers - 改变结构体值

arrays - 如何在 Go 中创建一个 map[string] [2]int?

ios - 如何查看 XCUIElement 树?

c# - 如何通过编程/编码实现webservice测试自动化

go - 从 C 构建示例时出现错误 : Could not determine kind of name for C. stdout?去?加油!文章

go - 如何解决go中的段错误问题?

go - 如何在golang模板中迭代一系列数字?