2010-08-04 9 views
3

У меня есть регрессионные тесты системы Java, которые не вызывают каких-либо графических элементов, но используют поток событий AWT. Есть ли способ, с помощью которого я могу настроить этот тестовый пакет в фоновом режиме на моей рабочей станции, не постоянно ли занимаясь фокусировкой на чем бы я ни работал? (Я запускаю это на mac.)Регрессионное тестирование Java (с участием AWT) возможно без кражи фокуса рабочего стола?

ответ

0

Если ваш на Mac: Run Tests - Without Focus Loss!

+0

То, что я закончил, пока что, как упрощенная версия этого ответа. Я создал второго пользователя на машине, ssh для нового пользователя (который должен быть зарегистрирован с помощью быстрого переключения пользователей) и запускает тесты как другой пользователь в окне терминала. Это работает и спасает меня от переполнения, но есть много мелких проблем, таких как права на жонглирование (я использую много chmod -R g + rw.) Я отправлю сообщение, если мы сделаем лучше. –

0

Эти тесты можно выполнить с помощью виртуального рабочего стола, виртуальной машины (например, VMWare) или виртуального буфера кадров. Я не уверен в Mac, но в Linux он отлично работает с xvfb.

+0

Это первый ответ, который я посмотрел в потому, что, казалось, самый низкий накладные расходы. Есть еще один поток stackoverflow, который заставляет меня думать, что это может быть нелегко. Не похоже, что есть хороший способ попросить java Java использовать X11 вместо собственных компонентов пользовательского интерфейса. http://stackoverflow.com/questions/897054/how-to-display-java-swing-on-x11-when-running-on-mac –

1

Попробуйте запустить Java с -Djava.awt.headless = истинным параметром. Это должно работать для вас, если вы не используете графические элементы. Надеюсь, это предотвратит захват фокуса программой во время ее работы.

Java -Djava.awt.headless = истина

Вот некоторые ссылки с дополнительной информацией:

http://www.macosxhints.com/article.php?story=20071208235352641

+0

Кодовая база имеет слишком много исторических зависимостей от AWT, чтобы сделать необходимый рефакторинг практичным. –