平行=“实例”:
TestNG will run all the methods in the same instance in the same thread, but two methods on two different instances will be running in different threads.
这句话怎么理解?
最佳答案
这个问题没有太多上下文,但快速谷歌找到了 source .
您的测试套件将创建许多不同类的实例,然后对它们运行一些测试。这种特殊的并行模式保证,无论何时您的测试套件在任何创建实例上调用多个方法,都将在同一个线程中完成。
为什么这很重要?好吧,某些功能可能依赖于一致的线程,例如,如果它们使用 ThreadLocal
。此外,除非您的实例是线程安全的,否则允许多个线程调用它们的方法可能会导致干扰。
如果您不确定所有这些关于线程安全的讨论是什么,那么您可能不想并行运行您的测试套件。或者可能将其限制为 parallel="tests"
并确保测试标签之间有明确的分隔。
关于java - 如何理解testng套件配置中的并行="instances"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17086909/