I think it's interesting because:
- The tests need to run against the latest I build for that week
- I need to patch 2 features to install my plugins from HEAD. I just followed Andrew's instructions.
- I wanted to use p2 to configure the tests, not the Automated Test Framework
- org.eclipse.core.tests.harness
- org.eclipse.test.performance
- org.eclipse.test
- org.eclipse.ant.optional.junit
For continuous builds you tend to want to build from HEAD. The best way (especially if you have a real map that's is regularly tagged for something else) is to set to properties:
forceContextQualifier=v${buildId}
fetchTag=HEAD
That way you don't end up with a lot of plugins that look like com.example.plugin_HEAD :-)
I also want to generate a p2 repo so I can consume my build easily. That's the standard set of p2 properties at the bottom of the build.properties file.
Once that's up (and a few tweaks to the customTargets.xml to use the latest I-build I will provide) and then you can build with the org.eclipse.ant.core.antRunner application.
Now I want to use p2 to run my automated tests. First I had to use XSLT to fix the content.xml and relax the feature patch version ranges (feature patches will target a very specific feature qualifier combination). There's a potential p2 fix in the works, but simple XSL will do for now.
I'm running the automated tests in my postBuild, with modified code I swiped from the Eclipse SDK automated test framework. The difference is that instead of having to generate a test.properties with the correct test plugin to test plugin version mapping and trying to unzip the build plugins into the eclipse test instance, the setup to run the tests now involve:
- unzip the eclipse test instance
- Call the director to install the plugin under test, the support plugins, and the patch features
- call the plugin's test.xml
-installIUs ${testPlugin}, org.eclipse.test, org.eclipse.ant.optional.junit, org.eclipse.ui.test.platform.patch.feature.group, org.eclipse.ui.test.rcp.patch.feature.group
And now I have my headless automated test environment :-) The relevant build files and map files can all be found in CVS.
- :pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse
- platform-incubator/ui/org.eclipse.ui.automated.build/org.eclipse.ui.releng
PW