如何理解testng套件配置中的parallel =“instances”?

jia*_*afu 5 java testng

并行=“实例”:

TestNG 将在同一线程中运行同一实例中的所有方法,但两个不同实例上的两个方法将在不同线程中运行。

这句话怎么理解?

sel*_*lig 3

这个问题没有太多上下文,但快速谷歌找到了来源

您的测试套件将创建不同类的许多实例,然后对它们运行一些测试。这种特殊的并行模式保证每当您的测试套件在任何创建实例上调用多个方法时,这都将在同一线程中完成。

为什么这很重要?嗯,某些功能可能依赖于一致的线程,例如,如果它们使用ThreadLocal. 此外,除非您的实例是线程安全的,否则允许多个线程调用它们的方法可能会导致干扰。

如果您不确定所有关于线程安全的讨论是什么,那么您可能不想并行运行测试套件。或者也许将其限制为parallel="tests"并确保测试标签之间有明确的分隔。

  • @CedricBeust 谁决定创建每个类的多少个实例?(如果可能,请澄清官方文档) (5认同)