首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Testify似乎正在并发运行测试套件?

Testify似乎正在并发运行测试套件?
EN

Stack Overflow用户
提问于 2014-10-30 06:02:46
回答 2查看 2.5K关注 0票数 3

基本上,我使用一些基本的测试结构在特定的包中创建了一个新的测试文件-没有实际的tests...just,一个嵌入suite.Suite的空结构类型,以及一个接受*testing.T对象并在所述结构上调用suite.Run()的函数。这立即导致我们的所有其他测试开始不确定地失败。

失败的性质与在单个Postgres DB中插入和删除时违反数据库唯一键完整性有关。这让我相信测试是并发运行的,而没有调用我们的setup方法来在测试之间正确地准备环境。

不用说,当我将这个测试文件移到另一个包中时,一切都神奇地工作了!

以前有没有其他人遇到过这个问题,可以提供一些见解?

EN

回答 2

Stack Overflow用户

发布于 2014-11-01 19:23:40

我在使用过程中发现,"go test“按顺序运行单个包的测试用例(除非调用t.Parallel() ),但如果您提供多个包(go test ./foo ./bar ./baz),则每个包的测试将与其他包并行运行。对我来说,数据库测试肯定也引起了类似的麻烦。

票数 3
EN

Stack Overflow用户

发布于 2014-11-04 08:28:09

事实证明,这是一个根植于go测试工作方式的问题,与testify无关。我们的测试是在上运行的。/...正如justinas指出的那样,这会导致下划线go测试工具在每个包中并行运行测试。在深入研究StackOverflow (herehere)和阅读testify's active issue on this problem之后,似乎最好的直接解决方案是使用-p=1标志来限制并行运行的包的数量。

然而,仍然不能解释为什么在添加这些新的包之前测试总是通过的。一种预感是,包/测试文件可能是以这样的方式排序和运行的,即在添加新的包/文件之前,并发性不是问题。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26641454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档