2013-03-26 29 views
10

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

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

有没有改变这种行为的选择?

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

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

+0

您可以通过简单地在构造函数中指定字段来实现所需的效果。 – 2013-03-26 16:08:29

+1

这不会起作用 - 构造函数只会被调用一次。 – shiggity 2015-08-07 19:53:46

回答

0

结帐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

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

0

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

相关问题