Purpose
This document is here to describe to JBossIDE developers how to add their unit test plugins to the automated build system of JBossIDE.
-
Add test plugins to a feature
You have a choice of either:
Creating your own feature that includes all of your test plugin(s).
Adding your test plugin(s) to the "org.jboss.ide.eclipse.test.feature" feature. This feature lives under jbosside/tests in CVS.
You should commit all test plugins under jbosside/tests, each with it's own seperate folder (having the same name as the plugin id), and if you are creating your own feature, you should commit that feature there as well.
Add test plugins to tests.map
Make sure you have the latest copy of jbosside-releng. (jbosside/releng/org.jboss.ide.eclipse.releng in cvs).
Open up builders/tests/tests.map. It should look something like this:
feature@org.jboss.ide.eclipse.test.feature=%cvsTag%,:pserver:anonymous@anoncvs.forge.jboss.com:/cvsroot/jboss,,jbosside/tests/org.jboss.ide.eclipse.test.feature plugin@org.jboss.ide.eclipse.core.test=%cvsTag%,:pserver:anonymous@anoncvs.forge.jboss.com:/cvsroot/jboss,,jbosside/tests/org.jboss.ide.eclipse.core.test
This is the standard map file format for eclipse's build system. Add the appropriate plugin entries for each test plugin you are adding, and also add your feature entry if you are committing your own feature. Make sure to keep "%cvsTag%" as the tag, so the build system can automatically insert tagging information for integration & release builds.
If you are adding your own feature, you will also need to add a few lines to the builders/tests/customTargets.xml ant script.
Look in the "allElements" target
You will need to add one ant call for each feature being added, the format looks like:
<ant antfile="${genericTargets}" target="${target}" > <property name="type" value="feature" ></property> <property name="id" value="YOUR_FEATURE_NAME" ></property> </ant>
After this, you will also need to add a top level target, the format looks like:
<target name="assemble.YOUR_FEATURE_NAME"> <property name="archiveName" value="JBossIDE-Tests-${versionTag}.zip"></property> <ant antfile="${assembleScriptName}" dir="${buildDirectory}"></ant> </target>
Add plugins and test case classes to build.properties.template
The last thing you will need to do is add every test plugin, and it's "main" (or "all") test case class to build.properties.template.
Open up builders/tests/build.properties.template
You will be editing the property "test.plugins" (should be at the bottom), currently it looks like:
test.plugins=\ core:org.jboss.ide.eclipse.core.test:org.jboss.ide.eclipse.core.test.AllTests,\ ui:org.hibernate.eclipse.console.test:org.hibernate.eclipse.console.test.ConsolePluginAllTests
Basically, the format is test-type:plugin-id:all-test-case-classname, where:
test-type is "ui" or "core"
plugin-id is the test plugin id
all-test-case-classname is a class extends TestCase and implements the suite() method
If your plugin id was MY_TEST_PLUGIN_ID, your "all" test case was myplugin.AllTests, and your tests require a UI workbench, this is what the property value should look like after adding it:
test.plugins=\ core:org.jboss.ide.eclipse.core.test:org.jboss.ide.eclipse.core.test.AllTests,\ ui:org.hibernate.eclipse.console.test:org.hibernate.eclipse.console.test.ConsolePluginAllTests,\ ui:MY_TEST_PLUGIN_ID:myplugin.AllTests
Comments