【问题标题】:Can race conditions occur in TestNG @Test?TestNG @Test 中会出现竞争条件吗?
【发布时间】: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


【解决方案1】:

为什么你的 ShipMethods 上有一个 @Test 注解?是测试班吗?如果它不是一个测试类(而不是你要测试的类),那么它不应该有 @Test 注释。

您的被测类不应在其中包含测试方法。

【讨论】:

    猜你喜欢
    • 2014-04-23
    • 1970-01-01
    • 2023-03-11
    • 2021-09-03
    • 2014-02-21
    • 2012-11-24
    • 1970-01-01
    • 2017-10-01
    • 1970-01-01
    相关资源
    最近更新 更多