SWTBot в автономном режиме и java.lang.ExceptionInInitializerError - PullRequest
0 голосов
/ 06 ноября 2018

Мы встречаемся со следующей проблемой. В случае, если мы пытаемся извинить наш автоматизированный набор тестов без управления Jenkins, мы получаем java.lang.ExceptionInInitializerError в тесте, который работает с клавиатурой. Выполнение тестов под управлением Jenkins означает, что SWTBot находится в режиме без головы. Наша целевая платформа - Windows 10. Согласно примечаниям разработчика SWTBot, режим безголовый не тестируется под Windows. Мы используем SWTBot версии 2.2.1. В случае, если мы выполняем тестовый набор SWTBot на удаленной жизненной машине без Jenkins. Эта проблема не наблюдается. Также наши исследования показывают, что эта проблема может быть воспроизведена на локальном компьютере, если раскладка клавиатуры не найдена. Итак, я полагаю, что основной причиной этой проблемы является отсутствие физической клавиатуры в этом случае. Также мы учитываем, что java.lang.ExceptionInInitializerError говорит нам, что в инициализации статических переменных происходит что-то неправильное

Мое расследование показало, что эта проблема возникает, когда тест пытается нажать клавишу. Частично эту проблему можно решить, используя метод setText вместо typeText. Но у нас есть набор тестов, которые проверяют обработку комбинации клавиш, например, Alt + A или нажатие Enter, например.

Тестируемое приложение - это приложение Eclipse RCP, основанное на очень старой платформе Eclipse (версия 3.6)

1 Ответ

0 голосов
/ 07 ноября 2018

По советам с форума SWTBot. ( Тема форума SWTBot ) Следующая строка кода

SWTBotPreferences.KEYBOARD_LAYOUT = "EN_US"; 

решает эту проблему. Эта строка вставляется в метод с аннотацией @ BeforeTest

...