【发布时间】:2014-12-25 19:30:23
【问题描述】:
基本上,我在一个特定的包中创建了一个新的测试文件,其中包含一些基本的测试结构 - 没有实际测试...只是一个嵌入 suite.Suite 的空结构类型,以及一个接受 *testing.T 对象的函数并在所述结构上调用 suite.Run()。这立即导致我们所有其他测试开始不确定地失败。
故障的性质与对单个 Postgres 数据库的插入和删除操作违反数据库唯一密钥完整性有关。这让我相信测试是同时运行的,而没有调用我们的设置方法来在测试之间正确准备环境。
不用说,当我将此测试文件移动到另一个包时,一切都会神奇地工作!
之前有没有其他人遇到过这个问题并且可以提供一些见解?
【问题讨论】:
-
我根本不知道作证。 (而且我不知道那个 WAT 鸭子是否会被删除,哈哈。)但是想知道它是否可能是正在测试的代码中的流氓并发,框架可能无法控制:后台 goroutine 无意中保持运行或其他.
-
WAT 鸭子应该是一个东西,就像这里回答的 50% 的问题应该有一样。
-
可以登录进入和离开测试以查看它们是否重叠,记录您的测试和设置功能何时运行等。似乎我们没有通用答案(我们共享您的 WAT),所以所有剩下的就是深入研究测试中发生的事情。
标签: unit-testing go testify