Java 如果运行模式是并行的,如何强制TestNG为每个方法创建测试类的新实例;方法;

Java 如果运行模式是并行的,如何强制TestNG为每个方法创建测试类的新实例;方法;,java,selenium,testng,Java,Selenium,Testng,如果运行模式为parallel=“methods”,如何强制TestNG为每个方法创建测试类的新实例 JUnit会自动执行,但TestNG会在方法之间重用相同的实例 是否有任何选项可以更改此行为 我正在运行selenium测试,并在@BeforeMethod方法中创建webdriver,并将其存储到类变量中,以便在@AfterMethod上的测试方法和CLO中使用 我希望能够在不共享webdriver的情况下并行运行一个测试类的方法。 发件人: 没有办法强迫testng这样做。解决方案是将web

如果运行模式为
parallel=“methods”
,如何强制TestNG为每个方法创建测试类的新实例

JUnit会自动执行,但TestNG会在方法之间重用相同的实例

是否有任何选项可以更改此行为

我正在运行selenium测试,并在
@BeforeMethod
方法中创建webdriver,并将其存储到类变量中,以便在
@AfterMethod
上的测试方法和CLO中使用

我希望能够在不共享webdriver的情况下并行运行一个测试类的方法。

发件人:


没有办法强迫testng这样做。解决方案是将webdriver实例设置为threadlocal变量。这将有助于做到的是,它将为每个线程创建一个webdriver对象,如果您对变量进行get,则它将创建一个webdriver对象。将只给你该线程的对象。

我使用TestNG并行运行多个selenium webdriver测试。要为每个方法设置新的WebDriver,在@Test注释中使用@DataProvider及其关联属性。

只需在构造函数中分配字段,即可达到所需效果。这不起作用——构造函数只调用一次。使用
@BeforeMethod
@AfterMethod
管理驱动程序不是一个好主意。我建议使用TestNG,它以最有效的方式利用TestNG的所有特性,来处理驱动程序管理和其他黑盒测试需求。
Marks a method as a factory that returns objects that will be used by TestNG as Test classes. The method must return Object[].