Как сделать тест gui без отображения в FEST-SWING

В моем проекте мы используем FEST для тестирования графического интерфейса. Мы были убеждены, что FEST является мощным, однако отображение кадров каждый раз является пустой тратой времени. Также мы используем континуум, и FEST не работает с континуумом, потому что континуум maven не может открыть графический интерфейс (кстати, мы также используем maven и наши тесты проходят в maven на нашей локальной машине).

Как я могу решить эту проблему?

Если это невозможно, сообщите нам.

Ответ 1

FEST по дизайну отображает пользовательский интерфейс. Если вы не хотите, чтобы тесты блокировали ваш рабочий стол, единственный способ - использовать какой-то виртуальный рабочий стол:  - Xvfb (Linux)  - VMWare (Linux, Windows)  - Автосогласование (Windows - не проверено, найдено где-то в документах)

Подробнее об этом можно прочитать здесь: http://docs.codehaus.org/display/FEST/Continuous+Integration

Может или не может быть связано, но для ускорения ваших тестов взгляните на:

Robot.settings().delayBetweenEvents()

Это определяет, как быстро происходят события мыши и клавиатуры.

Ответ 2

Вы можете использовать Cacio-tta-модуль Caciocavallo... Я знаю, это звучит так, будто я говорю о сыре, но это настоящий проект:

http://openjdk.java.net/projects/caciocavallo/

Структура тестирования состоит из бегуна, который подключается к Fest ( "CacioFESTRunner" ) и позволяет запускать тест без нарушения обычного потока, вам не нужен какой-либо специальный сервер, поскольку у cacio есть все, что вам нужно.

Он также полностью синхронный, поэтому вам не нужно беспокоиться о побочных ошибках из-за асинхронного вывода команды рисования, и она доступна в виде пакета maven, поэтому его очень легко настроить.

Вы можете найти более подробную информацию здесь:

http://jroller.com/neugens/entry/caciocavallo_1_1_released

Ответ 3

Посмотрите WindowLicker:

Структура для тестовых развитие систем Java через GUI.

Я не использовал его сам, но написал некоторые из тех же людей, которые писали JMock, поэтому он должен быть хорошим качеством.