15

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

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

有没有办法改变这种行为?

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

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

4

3 回答 3

3

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

于 2013-03-26T15:11:27.857 回答
1

收银台_

javadoc

Marks a method as a factory that returns objects that will be used by TestNG as Test classes. The method must return Object[].
于 2013-03-26T08:59:41.973 回答
0

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

于 2013-10-09T18:07:15.893 回答