java - 如何理解testng套件配置中的并行="instances"?

标签 java testng

平行=“实例”:

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/

相关文章:

java - 如何在 Android 项目中使用 TestNG?

java - TestNG 的群组

java - 断言该值在java和testng或junit中的map中设置

java - spring httpsession 和 tomcat session 的区别

java - java中获取所有数字和少数特殊字符的正则表达式

java - 具有继承性的工厂模式

java - "NULL not allowed"有两个 @OneToMany 到同一个表

java - TestNG + Mockito + PowerMock 始终显示 "ClassNotPreparedException"

java - azuredevops 上的 testNG(使用 Maven)套件,当我运行管道时,在 testNG 注释处出现 "can not find symbol"错误。在本地工作良好

具有 Runnable 接口(interface)的 Java Future 对象