If you want to start a JVx application during a JUnit Test, it's important that you don't call System.exit during the test - otherwise, your unit test will stop.
This example shows how you start an application:
public SwingApplication startApplication() { SwingApplication app = new SwingApplication(); app.setSystemExitOnDispose(false); app.startup(FirstApplication.class.getName(), "/apps/firstapp/application.xml", null); long lTime = System.currentTimeMillis(); while ((app.getApplication() == null || !app.getApplication().getLauncher().isVisible()) && lTime + 60000 > System.currentTimeMillis()) { try { Thread.sleep(100); } catch (InterruptedException ie) { throw new RuntimeException(ie); } } IApplication jvxapp = (IApplication)app.getApplication(); if (jvxapp == null) { Assert.fail("Application was not started!"); } return app; }
If you have problems with config.xml, use following to set the configuration base directory:
@BeforeClass public static void beforeClassBaseApplicationTest() throws Exception { System.setProperty(IPackageSetup.CONFIG_BASEDIR, new File("").getAbsolutePath()); }