【发布时间】:2012-10-23 22:32:53
【问题描述】:
我已经编写了几个测试,它们非常相似,但只有一个方面不同。一个测试有一个国际地址,另一个有国内地址:DomesticAddress.scala & InternationalAddress.scala
DomesticAddress.scala 扩展了另一个具有@Test 方法的类ShipMethods.scala。在这里,我正在验证 DomesticAddress.scala 是否存在有效的船舶方法。 InternationalAddress.scala不扩展ShipMethods.scala。
两个测试类(DomesticAddress.scala 和InternationalAddress.scala)有不同的用户;唯一的相似之处是地址存储在名为“地址”的 val 中。
当我运行这两个测试几次(而且只是几次)时,DomesticAddress.scala 的测试失败,因为我在那里看到了一个国际地址。
在这种情况下是否有可能发生竞争条件?我的 testng xml 保留了测试的顺序,因此可能会发生竞争条件更加令人困惑,尤其是因为我不是在测试之间共享任何资源。
【问题讨论】:
-
让我们从一个显而易见的问题开始:您是否在并行运行测试? (如果不确定,请在每个中打印线程 ID)
标签: scala testng race-condition