Java/Swing GUI testing made simple!
Switch branches/tags
Nothing to show
Clone or download
nebulorum Merge pull request #16 from nebulorum/master
Bump to lastest version of JUnit and plugins
Latest commit fdc0b42 Apr 12, 2015


UISpec4J is an Open Source functional and/or unit testing library for Swing-based Java applications.

If you are writing a Swing application, you will appreciate UISpec4J above all for its simplicity: UISpec4J's APIs are designed to hide as much as possible the complexity of Swing, resulting in easy to write and easy to read test scripts. This is especially true when comparing UISpec4J tests with those produced using Swing or low-level, event-based testing libraries.

Checkout the official website at for more information.

Window Interception failures

UISpec4J version 2.4 may fail tests that involve intercepting windows. This is due to a change in a couple of function related to modal windows. These appear on the JDK 1.6.0 update 38. If you are using newer JDKs and intercept windows you will need to use the 2.5-SNAPSHOT builds (see below).

JDK 7 and 8 support

The MASTER branch now include support for both JDK7 and JDK8. All current test are passing. The jdk7 branch has been removed. Please submit update and push to the MASTER branch. To use UISpec4J you should use 2.5-SNAPSHOT builds (see below).


Recent JDK updated have been changing several internal swing implementations that UISpec4J depends on. We are trying to keep the source up to date. Please report issues if you fail to build on a specific version. While the official 2.5 release is not out, you can build the project as follows:

JDK Command
jdk6 mvn -Pjdk6 -Dgpg.skip=true clean install
jdk7 mvn -Pjdk7 -Dgpg.skip=true clean install
jdk8 mvn -Pjdk8 -Dgpg.skip=true clean install

Running JDK7 on Linux

As of JDK 7 MToolkit is no long available on Linux (see Java SE 7 and JDK 7 Compatibility). This is still the default Toolkit on Linux for UISpec4J. To make you tests run on Linux run you builds as follow:

   mvn -Dawt.toolkit=sun.awt.X11.XToolkit clean test

Experimental Headless mode

If you build from MASTER you may be able to run your test on a headless machine using Caciocavallo this is a Toolkit and Graphical engine that do not require a real display. This makes it possible to run your tests in a fully headless environment. The base test on Linux worked fine (on MacOS there is a platform specific UISpec4J test that fails).

To run your tests with Caciocavallo you need to run on JDK7 and add the following dependency:


Then add the following variables to your Maven command line.


Before attempting to use this option, make sure your test work correctly on the standard toolkit. Remember this is still experimental, and your mileage may vary.