Wpis z mikrobloga

Cześć, mam nadzieję, że ktoś podpowie w czym może być problem, bo już rwe włosy z głowy. Mam projekt z użyciem biblioteki Selenium, wszystko pięknie działa. Jakakolwiek zmiana przy ustawieniach WebDrivera, np. zmiana ChromeDriver na FirefoxDriver, lub dodanie jakiejś opcji powoduje, że albo wszystko działa, albo pojawia się następujący błąd, który zwraca Glassfish:

"Caused by: java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkState(ZLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)"

Nawet cofnięcie zmian np. ctrl + z do działającej wersji skutkuje, że i tak nie działa poprawnie. Może nie jestem "orłem" w Javie, ale po prostu nie rozumiem takich rzeczy. Nie ma tutaj żadnej reguły, po prostu pada i koniec.

Używam NetBeans'a - czyszczenie folderu .m2 i cache, nie rozwiązuje problemu. Jedynie, przywrócenie backupu działającego projektu - całe szczęście, że go zrobiłem... Tylko w czym może tkwić problem, że zmiana kodu i cofnięcie tej zmiany - nie naprawia projektu?

#selenium #java
  • 6
Tylko w czym może tkwić problem, że zmiana kodu i cofnięcie tej zmiany - nie naprawia projektu?


@kr0kus_: ciężko gdybać bez kodu i pełniejszego stacktrace'a co i gdzie, ale może być tak, że to nie sama zmiana webdrivera jest powodem zmiany, ale samo odświeżanie jakiegoś cache (możesz zobaczyć czy np. po "mvn clean package" nie zachowa się tak samo)
generalnie NoSuchMethodError to błąd już runtime, czyli kod chyba się kompiluje, prawda?
@kr0kus_: @ppawel: brakująca metoda to zazwyczaj wina złej wersji biblioteki - i tak na pewno tak jest. Chyba guava, i jej zła wersja z jakiegoś powodu, nie używam glassfish więc trudno mi pomóc więcej. Nie wiem czy to ma jakiś osobny folder z bibliotekami, czy każda apka ma własne - ale na pewno coś gdzieś trzeba zaktualizować.
@kr0kus_: tak, są inne serwery aplikacji... nie znam oczywiście kontekstu, ale gdzieś z tyłu głowy zapala mi się lampka czy rzeczywiście serwer aplikacji EE do uruchamiania testów to nie jest trochę przerost formy nad treścią?
@kr0kus_: no właśnie rzecz w tym, że "aplikacja" odpalająca testy wcale nie musi być aplikacją webową (o ile ktoś nie wymyślił szalonego interfejsu webowego do uruchamiania testów), skoro już używamy Javy to najczyściej to chyba je mieć jako kod testowy wykorzystujący JUnit albo TestNG - w "src/test/java" a nie produkcyjny z "src/main/java" (a odpalanie testów pozostawić temu, kto zrobi jak należy "mvn clean test", ewentualnie to samo wywoływane przez Jenkinsa)

a