I would like to do functional test automation of a huge application consisting of more than 20 Eclipse RCP plugins. The most challenging part is almost all RCP plugins embed some legacy Swing components. Now I am almost certain that there is no open source test automation framework that supports testing SWT+Swing applications out of the box. There are frameworks that support testing pure SWT applications or pure Swing applications, but no framework supports testing an AUT that is a mix of SWT and Swing. I experimented something with a sample SWT+Swing application. This sample application is not an RCP plugin, but a stand alone SWT application with embedded Swing controls. I used two different libraries to test SWT and the Swing parts of the application.
For SWT, I used: https://github.com/mmarquee/ui-automation
For Swing, I used http://joel-costigliola.github.io/assertj/assertj-swing.html
It works just fine. I have a single Junit test that automates SWT as well as Swing components. So I am all excited to take this approach to test the RCP plugins.
So coming to my question: For the SWT part, I am fine, as the UI Automation binding works just fine with the SWT part of the RCP plugin. The problem is about using AssertJ Swing. AssertJ Swing uses a very different approach to attach to AUT. In fact it does not attach to a separate instance of AUT, but wraps the actual Swing components into something called as Fixtures. So the code that tests the Swing components using AssertJ Swing, must be running within the same JVM as the AUT. One idea is to implement a new RCP plugin and include the Swing tests within this RCP plugin. It may take some time for me to learn writing RCP applications. So I would like to ask if this solution has any potential problems. One problem that I already see is, will AssertJ Swing allow to find frames and dialogs without calling the ApplicationLauncher.application.start method?
Please note that, although this question sounds like it is about AssertJ Swing, and I am fine if I get answers and solutions around AssertJ Swing, I would like to hear about more ideas for solving the problem of testing multiple RCP plugins together which embed Swing components. I am open for a completely different approach, however I would like to stick to open source frameworks.