Поскольку во время выполнения теста вам требуется графический интерфейс и взаимодействие с пользователем, это скорее "функциональный" тест, чем "модульный" тест.
Вы можете записать результаты в файл в конце, это будет иметь дополнительное преимущество, так как вы сможете утверждать, что вывод корректен / представлен программно в конце. Если вы действительно хотите, чтобы тест продолжался, вы можете вставить бесконечный цикл в конце теста:
JUnit 3:
public void tearDown() {
while (true) { Thread.sleep(2000); };
}
JUnit 4:
@After
public void tearDown() {
while (true) { Thread.sleep(2000); };
}
Это сохранит работу потока JUnit, но вам нужно будет убедиться, что ваши события GUI обрабатываются в другом потоке.