Dav*_*ave 5 gwt headless maven
我在Linux上使用Maven 3.0.3,GWT 2.4.我想在运行一些测试时设置GWT无头模式(例如设置-Djava.awt.headless = true).我的问题是,如何通过Maven运行我的GWT测试时设置该参数?我通过运行来运行GWT测试
mvn clean test
Run Code Online (Sandbox Code Playgroud)
谢谢, - 戴夫
您可以通过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>
...
Run Code Online (Sandbox Code Playgroud)
参考: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>
...
Run Code Online (Sandbox Code Playgroud)
有关更多配置选项,请查看 Surefire 手册页:http : //maven.apache.org/surefire/maven-surefire-plugin/examples/junit.html
如果我猜对了,当应用程序无法显示 GUI 时,您正在以无人值守模式(可能是 Hudson 或 CruiseControl)在服务器上运行测试。
还有另一种方法可以解决您的问题(假设您的目标是运行测试)。我使用 Xvfb - 一个 X Windows 系统虚拟帧缓冲区 X 服务器(一种虚拟屏幕)。如果应用程序需要的话,给它一个屏幕,而不是学习如何强制它在无头模式下工作,这可能更简单。(特别是在我管理大约 100 个 Maven 项目的情况下)
你可以做什么:
确保您在运行测试的 PC/服务器上安装了 X 窗口系统。如果您需要有关如何安装 Linux 的提示,只需点击 Google“安装 x window”即可。
安装Xvfb
sudo apt-get install Xvfb(对于 Ubuntu Linux)或
百胜搜索 Xvfb(对于 CentOS,要获取准确的包名称,然后 yum install ...)或任何适合您的 lunux 发行版
创建 xvfb.hosts 文件,其中包含 2 行,其中包含“localhost”和“servername.yourcompany.com”。将其存放在某处。
nohup Xvfb :99 -auth xvfb.hosts > xvfb.log &
(或者设置此命令在服务器启动时运行)
不要忘记为运行测试的会话提供环境变量:
导出显示=:99
我不能确切地说如何做到这一点,因为我不知道你的计算配置。我已经在 CruiseControl 启动脚本和 Hudson 安装中设置了 DISPLAY。
这对我来说效果很好,我不必关心我公司所有项目的任何类型的自动 GUI 测试。希望这会对您有所帮助。
| 归档时间: |
|
| 查看次数: |
3567 次 |
| 最近记录: |