LinuxでMaven 3.0.3、GWT 2.4を使用しています。テストを実行するときに GWT ヘッドレス モードを設定したい (例: -Djava.awt.headless=true を設定する)。私の質問は、Maven を介して GWT テストを実行するときに、そのパラメーターをどのように設定すればよいですか? 実行してGWTテストを実行します
mvn clean test
ありがとう - デイブ
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
私の推測が正しければ、アプリケーションが GUI を表示できないときに、無人モード (おそらく Hudson または CruiseControl) でサーバー上でテストを実行しています。
問題を解決する別の方法があります (テストを実行することが目標だとします)。Xvfb - X Windows システムの仮想フレームバッファ X サーバー (一種の仮想画面) を使用します。ヘッドレス モードで強制的に動作させる方法を学習するのではなく、必要に応じてアプリケーションに画面を表示する方が簡単な場合があります。(特に、約 100 の Maven プロジェクトを管理している私の場合)
できること:
テストを実行している PC/サーバーに X ウィンドウ システムがインストールされていることを確認してください。Linux のインストールでそれを行う方法のヒントが必要な場合は、「install x window」と入力して Google にアクセスしてください。
インストール Xvfb
sudo apt-get install Xvfb(Ubuntu Linux の場合) または
yum 検索 Xvfb(CentOSの場合、正確なパッケージ名を取得するには、yum install ...)またはlunuxディストリビューションに適したもの
「localhost」と「servername.yourcompany.com」を含む 2 行で xvfb.hosts ファイルを作成します。どこかに保管してください。
nohup Xvfb :99 -auth xvfb.hosts > xvfb.log &
(または、このコマンドをサーバーの起動時に実行するように設定します)
テストが実行されているセッションに環境変数を提供することを忘れないでください。
エクスポート DISPLAY=:99
コンピューティング構成がわからないため、正確な方法はわかりません。CruiseControl の起動スクリプトと Hudson のインストールに DISPLAY を設定しました。
これは私にとっては問題なく機能し、社内のすべてのプロジェクトで自動 GUI テストを気にする必要はありません。これがお役に立てば幸いです。