SWT does not have support to recognize native dialogs, and SWTBot therefore cannot test them. See eclipse bug #164191 for more info. Consider adding a comment and a vote on that bug as well.

+

SWT does not have support to recognize native dialogs, and SWTBot therefore cannot test them. See [https://bugs.eclipse.org/bugs/show_bug.cgi?id=164192 eclipse bug #164191] for more info. Consider adding a comment and a vote on that bug as well.

FAQ

Why do tests run on a non-UI thread?

A lot of events that SWTBot sends to the UI are blocking. SWT dialogs are one of them. This means that functions opening dialogs, will block until the dialog closes. Since we do not want tests to block when a dialog open up, SWTBot runs in a non-UI thread, and posts events to the UI thread.

There are two solutions to this:

Make the dialog non-modal, by invoking Dialog#setBlockOnOpen(false)

Open the dialog in a non-ui thread

SWTBot chooses the later approach, since the first approach is not always practical.

Why do I have to run tests as SWTBot tests, instead of PDE-JUnit tests?

PDE-Junit tests run on the UI thread. SWTBot needs that tests run on a non-UI thread, hence a new run configuration. See this for more info.

Can I slow down the execution speed of SWTBot tests?

Yes you can! To slow down the speed of execution of SWTBot, you need to set the system property "net.sf.swtbot.playback.delay". This delay is in milliseconds. You can also set this property in code as follows: