Как заставить TestNG создать новый экземпляр тестового класса для каждого метода, если режим запуска параллелен = "методы"
Как заставить TestNG создать новый экземпляр тестового класса для каждого метода, если режим запуска parallel="methods"
?
JUnit делает это автоматически, но TestNG повторно использует один и тот же экземпляр между методами.
Есть ли возможность изменить это поведение?
Я запускаю тесты selenium и создаю webdriver в методе @BeforeMethod
и сохраняю его в переменной класса, чтобы использовать его в методах тестирования и закрываем на @AfterMethod
.
И я хочу иметь возможность одновременно запускать методы одного тестового класса без совместного использования webdriver.
Ответы
Ответ 1
Невозможно заставить testng сделать это. Решение состоит в том, чтобы установить экземпляр webdriver в переменную threadlocal. Что бы это помогло, так это создание одного объекта webdriver для каждого потока, если вы хотите получить переменную. Давал бы этот объект потока.
Ответ 2
Оформить заказ 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[].
Ответ 3
Я использовал TestNG для параллельной работы нескольких тестов selenium webdriver. Чтобы настроить новый WebDriver для каждого метода, используйте @DataProvider annotation и связанный с ним атрибут в аннотации @Test.