我需要使用Jemmy创建一些gui测试,但我不知道如何使用javaws应用程序启动它.在教程/ examples/etc中是这样的:
new ClassReference("org.netbeans.jemmy.explorer.GUIBrowser")
.startApplication();
Run Code Online (Sandbox Code Playgroud)
这段代码打开了一个示例窗口,但是我怎样才能使用ClassReference对象打开*.jnlp文件?或者它是用java web start应用程序"连接"jemmy的另一种方式?
谢谢你提前.
我想使用Jemmy v3进行GUI测试,但我找不到任何手册或用户指南,甚至是使用它的例子.我找到了仅适用于Jemmy v2的文档,看起来这个库已被完全重写并重新设计.
在Jemmy v2中我用过:
new ClassReference(...).startApplication()
Run Code Online (Sandbox Code Playgroud)
如何使用Jemmy v3进行类似的调用?
我正在开发一个包含一组自定义JavaFX组件的相当大的项目.对于每个要重用的自定义组件,我已经开始使用JemmyFX和JUnit编写一组自动化测试.在开发过程中,我从Eclipse Juno中运行它们.
一次运行整套测试已经证明是困难的.这个问题似乎源于这个事实,因为我想测试多个组件,理想情况下我会为每个组件运行一个不同的应用程序(这样在一个组件上执行的测试不会影响其他测试).
我创建了一个基类,它执行以下操作:
@BeforeClass
public static void beforeClass() {
Thread t = new Thread("JavaFX Init Thread") {
@Override
public void run() {
Application.launch(UITester.class, new String[0]);
}
};
t.setDaemon(true);
t.start();
}
使用这个基类,我创建了一个单独的类,其中@Test包含每个自定义控件的测试.当我运行这个测试套件时,第一个测试用例运行正常,但其余测试用例失败:
Exception in thread "JavaFX Init Thread" java.lang.IllegalStateException: Application launch must not be called more than once
我尝试了以下方法来解决此问题:
我在基类中添加了以下内容:
@AfterClass
public static void afterClass() {
Platform.exit();
}
同样的问题仍然存在.也许是因为VM没有在测试之间重启?
我输入一个静态变量来检查并查看应用程序是否已在运行.当我从Eclipse运行测试时,这会使问题消失.当我从命令行运行它们时,问题仍然存在.当我们尝试在集成服务器上运行这些测试时,这不太好.
这是一个奇怪的.我可以捕获异常,并且我的大多数问题都消失了,除了整个测试套件Ubuntu的每4或5次运行崩溃到shell并且我必须重新登录的事实.
那么,我如何最好地为大量自定义控件编写测试?我的方法不正确吗?