Как мне установить безголовый режим GWT при тестировании только для Maven? - PullRequest
5 голосов
/ 06 декабря 2011

Я использую Maven 3.0.3, GWT 2.4 в Linux.Я хочу установить безголовый режим GWT при запуске некоторых тестов (например, установка -Djava.awt.headless = true).У меня вопрос, как мне установить этот параметр при запуске моих тестов GWT через Maven?Я запускаю свои тесты GWT, запуская

mvn clean test

Спасибо, - Дейв

Ответы [ 2 ]

4 голосов
/ 17 марта 2013

Вы можете передать параметры конфигурации через плагин surefire.Например:

<build>
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.14</version>
  <configuration>
    <systemPropertyVariables>
      <java.awt.headless>true</java.awt.headless>
    </systemPropertyVariables>
  </configuration>
</plugin>
...

Ссылка: http://maven.apache.org/surefire/maven-surefire-plugin/examples/system-properties.html

В старой версии этого ответа использовались устаревшие "systemProperties", которые необходимо использовать для более старых верных версий:

<build>
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.14</version>
  <configuration>
    <systemProperties>
      <java.awt.headless>true</java.awt.headless>
    </systemProperties>
  </configuration>
</plugin>
...

Для получения дополнительной информации о конфигурации обратитесь к странице справочника Surefire: http://maven.apache.org/surefire/maven-surefire-plugin/examples/junit.html

0 голосов
/ 14 декабря 2011

Если я правильно угадал, вы запускаете тесты на сервере в автоматическом режиме (возможно, Hudson или CruiseControl), когда приложение не может отображать графический интерфейс.

Есть еще один способ решить вашу проблему (предположим, ваша цель - запустить тесты). Я использую Xvfb - виртуальный кадровый буфер X X System System (вид виртуального экрана). Может быть проще дать экран приложению, если оно ему нужно, вместо того, чтобы учиться заставлять его работать в режиме без головы. (Особенно в моем случае управления около 100 проектов Maven)

Что вы можете сделать:

Убедитесь, что на вашем ПК / сервере, где вы запускаете тесты, установлена ​​система X Window. Просто нажмите «Google x», если вам нужен совет, как это сделать для установки Linux.

УСТАНОВИТЬ Xvfb

sudo apt-get install Xvfb
(для Ubuntu Linux) или
yum search Xvfb
(для CentOS, чтобы получить точное имя пакета, затем yum install ...) или любой другой, подходящий для вашего дистрибутива lunux

Создайте файл xvfb.hosts с двумя строками, содержащими «localhost» и «servername.yourcompany.com». Храните это где-нибудь.

nohup Xvfb :99 -auth xvfb.hosts > xvfb.log &

(или установите эту команду для запуска при запуске сервера)

Не забудьте указать переменную среды для сеанса, в котором выполняются ваши тесты:

export DISPLAY=:99

Я не могу сказать, как именно это сделать, потому что я не знаю вашу вычислительную конфигурацию. Я установил DISPLAY в сценарии запуска CruiseControl и для установки Hudson.

Это прекрасно работает для меня, и мне не нужно заботиться о каких-либо автоматических тестах GUI для всех проектов в моей компании. Надеюсь, это поможет вам.

...