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

时间:2013-03-26 08:55:08

标签: java selenium testng

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

JUnit自动完成,但TestNG在方法之间重用相同的实例。

有没有更改此行为的选项?

我正在运行selenium测试并在@BeforeMethod方法中创建webdriver并将其存储到类变量中以在@AfterMethod中的测试方法和闭包中使用它。

我希望能够并行运行一个测试类的方法,而无需共享webdriver。

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

结帐Factory

来自javadoc

Marks a method as a factory that returns objects that will be used by TestNG as Test classes. The method must return Object[].

答案 2 :(得分:0)

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