2013-03-26 12 views
10

Jak wymusić na TestNG utworzenie nowej instancji klasy testowej dla każdej metody, jeśli trybem działania jest parallel="methods"?Jak zmusić TestNG do utworzenia nowej instancji klasy testowej dla każdej metody, jeśli trybem działania jest równoległy = "metody"

JUnit robi to automatycznie, ale TestNG ponownie wykorzystuje to samo wystąpienie między metodami.

Czy istnieje możliwość zmiany tego zachowania?

Używam testów selenu i tworzę webdriver w metodzie @BeforeMethod i przechowuję ją w zmiennej klasowej, aby użyć jej w metodach testowania i clos na @AfterMethod.

I chcę mieć możliwość uruchamiania metod jednej klasy testowej równolegle bez współużytkowania webdrivera.

+0

Możesz osiągnąć pożądany efekt, po prostu przypisując swoje pola do konstruktora. –

+1

To by nie działało - konstruktor zostaje wywołany tylko raz. – shiggity

Odpowiedz

0

Zamówienie Factory

Od 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

Nie ma sposobu, aby zmusić TestNG, aby to zrobić. Rozwiązaniem jest ustawienie instancji webdriver na zmienną typu threadlocal. Pomogłoby to w zrobieniu jednego obiektu Webdriver na wątek, jeśli użyjesz zmiennej. Dałby ci tylko ten obiekt wątku.

0

Użyłem TestNG do równoczesnego uruchamiania wielu testów serafirowego webdrivera. Aby skonfigurować nowy WebDriver dla każdej metody, użyj @DataProvider annotation i związanego z nim atrybutu w adnotacji @Test.

Powiązane problemy