Beware: Testing RCP Applications in Tycho can cause Serious Harm to your Brain
For our Business Integration product - AGETOR -, we have built an IDE based on Eclipse. Until recently this product has been build using PDE Build and simple JUnit testing.
As we anticipate a lot of new features in this IDE over the next year, we have refactored the compete code base and moved from PDE Build to Tycho. And with that we also need to move our various tests to Tycho.
Where the move from PDE Build to Tycho wasn't too difficult (once you have studied the various examples on the web and the Tycho sessions from the previous EclipseCons), moving the tests was an entirely different story!
In the "old" days, to test an RCP application, you traditionally "just" added a number of JUnit related plug-ins and fragments and ran all your tests in the same basic environment as the original application. Not so when you use Tycho as the build system. Here each test usually is run in a much smaller environment that just includes the plug-in or bundle to test and not everything else. As we found out, this can give you some unexpected problems when you want to test OSGi services, extension points, update sites and other "things" that are not based on pure OSGi dependencies.
In this session, I will show some of the problems we ran into and illustrate how we solved the problems. As it turns out, you can actually test a lot more when using Tycho than when using PDE Build, but it does take some getting used to...