Jestem nowy na scenie automatyzacji testów, więc wybacz mi, jeśli to jest głupie pytanie, ale Google zawiodło mnie tym razem. A przynajmniej wszystko, co przeczytałem, jeszcze bardziej mnie zdezorientowało.Czy istnieje odpowiednik funkcji @BeforeSuite testNG w JUnit 4?
Używam JUnit 4 i Selenium Webdriver w środowisku Eclipse. Mam kilka testów, które muszę uruchomić jako pakiet, a także indywidualnie. W chwili obecnej testy te działają prawidłowo, gdy są uruchamiane samodzielnie. Na początku testu pole wejściowe jest prezentowane testerowi/użytkownikowi, pytając najpierw, na jakim serwerze chce się przetestować (jest to zmienna łańcuchowa, która staje się częścią adresu URL) i jakiej przeglądarki chcą przetestować. W momencie uruchamiania testów w pakiecie użytkownik jest o to pytany na początku każdego testu, ponieważ oczywiście jest to zakodowane w każdej z ich metod @Before.
Jak przyjmować te wartości jeden raz i przekazywać je do każdej z metod testowych?
Więc jeśli serwer = "serwer1" i przeglądarka = "firefox", to Firefox jest przeglądarką Chcę używać selenu, a adres URL, który chcę otworzyć to http://server1.blah.com/ dla wszystkich poniższych metod testowania. Powodem, dla którego korzystałem z oddzielnych metod @Before, jest to, że wymagany adres URL jest nieco inny dla każdej metody testowej. tj. każda metoda testuje inną stronę, na przykład server1.blah.com/something i server1.blah.com/somethingElse
Testy działają dobrze, po prostu nie chcę kontynuować wprowadzania wartości, ponieważ numer testu metody w końcu będą ciche, duże.
Mogę również przekonwertować moje testy na testNG, jeśli jest łatwiejszy sposób robienia tego w testNG. Myślałem, że adnotacja @BeforeSuite może działać, ale teraz nie jestem pewien.
Wszelkie sugestie i krytykę (konstruktywną rodzaju) są bardzo cenione
Dzięki Matthew, to pomaga. Obawiam się jednak, że będę musiał zadać ci kilka okropnych pytań noob :(Najpierw linia
this(builder, klass, getAnnotatedClasses(klass));
nie będzie działać, ponieważ getAnnotatedClasses (klasa >) nie jest widoczna.Po drugie nie jestem pewien, gdzie zdefiniować getUrlFromUser() .. ... Zdaję sobie sprawę, że mogę być trochę nad głową i byłbym bardzo wdzięczny za twoją cierpliwość :) – user1088166Powiedziałeś w swoim pytaniu: "Zostanie wyświetlone pole wprowadzania dla użytkownika" To byłoby getUrlFromUser, to nie naprawdę ważne, gdzie jest, ale w MySuite prawdopodobnie będzie to dobre miejsce. Co do tej (...) której wersji JUnit używasz? –
OK, teraz podążam za tobą. Używam JUnit 4. Może to nie być istotne, ale początkowo stworzyłem przypadki testowe przy użyciu selen IDE, a następnie wyeksportowałem je jako JUnit 4 (WebDriver), aby pracować z nimi w czasie zaćmienia. – user1088166