我想单元的测试的一些拉和摆动代码,用于一个项目,我正在和试验运行的现只要我运行他们自食。

当我运行他们在我的哈德逊环境中的失败,因为哈德逊的运行测试无头的模式。

什么是最好的方式这样做?开放源码解决方案只能请(由于项目开放源)。

有帮助吗?

解决方案

您可以运行的Xvfb (X虚拟帧缓存中,X11服务器执行在存储器中的所有的图形操作),这工作正常。

但是存在与Hudson的插件的Xvnc另一种解决方案。简单地安装插件并勾选在作业配置屏幕:

替代文字http://www.justinedelson.com/blog/可湿性粉剂内容/上传/ xvnc_box.jpg

哈德森将自动启动一个会话的Xvnc和DISPLAY环境变量设置为适当的值,然后关闭该会话的生成完成时。一个优点这有过的Xvfb方法是,如果你有多个摇摆/ SWT项目同步建设,每个版本都有自己的X会话。这可能不是在所有的问题,但它似乎是一个不错的主意。

使用这个插件之前,你显然必须有安装的Xvnc。什么是不太明显的(尽管明智的)是,你还必须设置一个密码。您可以通过运行做到这一点:

$ vncpassword

这有许多工作要做,如Hudson运行作为同一用户。

其他提示

尝试 Abbot Java GUI测试框架SWTbot.至少SWTbot 应该能够做到这一点.

如果既没有提供一个无头的模式,然后 这篇文章 可能会给你一些想法,如何摆脱UI进行测试。

使用摇摆我倾向于整理东西,使得组件树可以不位于顶部的窗口来创建。这样做可以让你简单地创建一个单元测试和使用一个JPanel,作为您的顶级组件。有一定的你不能测试的东西,如聚焦和参与创建帧用于正常操作的任何逻辑,但绝大多数可以进行测试。

您可能想看看进入FEST库,使生活更轻松无论你去无头与否,它看起来很不错:的 http://fest.easytesting.org/swing/wiki/pmwiki.php

我确信我这里之前张贴了这个,不知道发生了什么事吧。

Cacio允许运行Swing应用程序无头。

http://rkennke.wordpress.com/2011 / 10/17 / cacio换UI-测试/

我不知道SWT,但与Swing你不能。一个窗口的任何实例化(的JFrame,JDialog的,等等),即使它永远不会设置为可见将在无头模式(JDK 5)炸毁。我们的确在无头的模式不运行,并安装的Xvfb 提供实际上不具有的窗安装真实窗口系统。

您可以尝试的 RedDeer 测试框架 https://github.com/jboss-reddeer/reddeer

•用于运行在詹金斯CI环境试验(哈德森等)支持

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top