getDeclaredMethod получает ошибку NoClassDefFoundError

#java #maven-3

#java #maven-3

Вопрос:

Итак, я загружаю класс, и это работает просто отлично. Затем выполните getDeclaredMethods() и получите ошибку NoClassDefFounfError. Я смог отследить это внутри метода, и вот что находится в строке.

 driver = new FireFoxDriver();
  

Когда я выполняю отладку, просматриваю подробное сообщение NoClassDefFounfError, я вижу следующее

 "org/openqa/selenium/WebDriver"
  

Что может быть причиной этого? Я использую Maven, и на этапе тестирования у меня не возникает проблем с запуском WebDriver и выполнением теста. Все проблемы возникают на этапе сайта, когда он анализирует файлы классов для методов. Спасибо за любую помощь.

Ответ №1:

Очевидно, что существует метод, который использует org.openqa.selenium.WebDriver в качестве параметра или возвращает его в результате. Вы не вызываете его во время тестирования, чтобы не получить ошибку, но когда вы анализируете все методы, Java должна создать объект класса для этого параметра / возвращаемого значения, и он не может, если не может найти файл .class .

Комментарии:

1. Ну, эта строка драйвера, которую я опубликовал выше, вызывается в моем тесте, поскольку она открывает браузер и запускает тест. Как только браузер закрывается и фаза тестирования завершена, запускается фаза отчета и выполняется поиск этого класса. Таким образом, моя IDE / командная строка решает проблему во время тестов, но не при запуске getDeclaredMethods()

2. @jrock2004 если ваши тесты не вызывают соответствующие методы, им не нужно загружать этот clsss, поэтому они не получат эту ошибку.