我在Linux上使用Maven 3.0.3,GWT 2.4。我想在运行一些测试时设置GWT无头模式(例如设置-Djava.awt.headless = true)。我的问题是,如何通过Maven运行我的GWT测试时设置该参数?我通过运行
运行我的GWT测试mvn clean test
谢谢, - 戴夫
答案 0 :(得分:4)
您可以通过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”,您需要将其用于较旧的surefire版本:
<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
答案 1 :(得分:0)
如果我猜对了,当应用程序无法显示GUI时,您正在无人参与模式(可能是Hudson或CruiseControl)上运行服务器上的测试。
还有另一种方法可以解决您的问题(假设您的目标是运行测试)。 我使用Xvfb - 一个X Windows系统虚拟帧缓冲X服务器(一种虚拟屏幕)。 可能更简单的是在需要时为应用程序提供屏幕,而不是学习如何强制它在无头模式下工作。 (特别是在我管理大约100个maven项目的情况下)
你能做什么:
确保在运行测试的PC /服务器上安装了X window系统。如果您需要提示如何为您的Linux安装做到这一点,请点击谷歌“安装x窗口”。
安装Xvfb
sudo apt-get install Xvfb(适用于Ubuntu Linux)或
yum search Xvfb(适用于CentOS,获取确切的软件包名称,然后安装yum ...)或任何适合您的lunux发行版
使用包含“localhost”和“servername.yourcompany.com”的2行创建xvfb.hosts文件。把它存放在某个地方。
nohup Xvfb :99 -auth xvfb.hosts > xvfb.log &
(或者将此命令设置为在服务器启动时运行)
不要忘记为运行测试的会话提供环境变量:
export DISPLAY=:99
我不知道该怎么做,因为我不知道你的计算配置。我已经在CruiseControl启动脚本和Hudson安装中设置了DISPLAY。
这对我来说很好,我不必关心我公司所有项目的任何类型的自动GUI测试。希望这会对你有所帮助。