Version 5

    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:

    1. Creating your own feature that includes all of your test plugin(s).

    2. 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

    1. Make sure you have the latest copy of jbosside-releng. (jbosside/releng/org.jboss.ide.eclipse.releng in cvs).

    2. 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
    
    1. 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.

    2. If you are adding your own feature, you will also need to add a few lines to the builders/tests/customTargets.xml ant script.

      1. Look in the "allElements" target

      2. 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>
    
      1. 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.

    1. Open up builders/tests/build.properties.template

    2. 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
    
    1. Basically, the format is test-type:plugin-id:all-test-case-classname, where:

      1. test-type is "ui" or "core"

      2. plugin-id is the test plugin id

      3. all-test-case-classname is a class extends TestCase and implements the suite() method

    2. 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