Question: I have a simple JavaFx application (Java 8) that has a unit test using TestFx. However, when the test is run, the application window starts up and the mouse is moved to do whatever action is in my test. Can these tests be run in a way where the application doesn't popup and I can still use my mouse for other things as the automated build and tests are running?

Answer: 
**Update:**

I found [this](https://nofluffjuststuff.com/blog/andres_almiray/2016/02/running_testfx_tests_in_headless_mode) blog post that provides the solution for me to this problem. As the author suggests, you need to add the following dependency to your build:

```
testRuntime 'org.testfx:openjfx-monocle:1.8.0_20'

```

Then you will need to include the following somewhere before you call `registerPrimaryStage()`, in my case in a method marked with `@BeforeClass` as I am using JUnit:

```
System.setProperty("testfx.robot", "glass");
System.setProperty("testfx.headless", "true");
System.setProperty("prism.order", "sw");
System.setProperty("prism.text", "t2k");

```

I would also add that its useful to include `System.setProperty("java.awt.headless", "true")` to ensure that you're not relying on anything from the AWT (in my case I had a call to get the size of the screen that was causing problems). I also followed the blog author's advice to add a switch to turn headless mode on and off. This gives the final method as follows:

```
@BeforeClass
public static void setupSpec() throws Exception {
    if (Boolean.getBoolean("headless")) {
        System.setProperty("testfx.robot", "glass");
        System.setProperty("testfx.headless", "true");
        System.setProperty("prism.order", "sw");
        System.setProperty("prism.text", "t2k");
        System.setProperty("java.awt.headless", "true");
    }
    registerPrimaryStage();
}

```

You can see the solution in context [here](https://github.com/VocabHunter/VocabHunter/blob/bf3676a164ea8b9b3dd4d91ef1a320be56b1d4ed/gui/src/test/java/io/github/vocabhunter/gui/main/GuiTest.java)

**Original Answer:**

If you're using Linux, you can use xvfb for this. On a Debian-based system you can install xvfb as follows:

```
$ sudo apt-get install xvfb

```

With xvfb installed, run the following before you run your tests:

```
$ Xvfb :99 &>/dev/null &
$ export DISPLAY=:99

```

If you launch your tests in the same console TestFX will use the frame buffer instead of your main display. Thus the tests will run but you won't be bothered with windows opening and the mouse pointer being moved around.
Yes, it is possible to perform headless testing of JavaFx2 applications.
You will need Monocle(part of OpenJFX). More details here:
<https://github.com/TestFX/Monocle>