Jump to: navigation, search

Difference between revisions of "SMILA/Documentation/HowTo/Create a test bundle (plug-in)"

m
m
Line 5: Line 5:
 
The following steps must be performed to create the test project base:<br>  
 
The following steps must be performed to create the test project base:<br>  
  
#Launch Eclipse and select your SMILA workspace.
+
#Launch Eclipse and select your SMILA workspace.  
# Select ''File &gt; New &gt; Project''and click ''Plug-in Project''.  
+
#Select ''File &gt; New &gt; Project''and click ''Plug-in Project''.  
 
#Click ''Next''. <br>Now you have to fill in various metadata and settings for your plug-in project. You may as well edit some of the settings later on by opening the <tt>MANIFEST.MF</tt> with the ''Plug-in Manifest'' editor.  
 
#Click ''Next''. <br>Now you have to fill in various metadata and settings for your plug-in project. You may as well edit some of the settings later on by opening the <tt>MANIFEST.MF</tt> with the ''Plug-in Manifest'' editor.  
 
#Enter a project name (you should use the same name as the bundle that should be tested and append a <tt>.test</tt> to it, for this example we will use <tt>org.eclipse.smila.integration.bundle.test</tt>).  
 
#Enter a project name (you should use the same name as the bundle that should be tested and append a <tt>.test</tt> to it, for this example we will use <tt>org.eclipse.smila.integration.bundle.test</tt>).  
Line 12: Line 12:
 
#*Set ''Source folder'' to <tt>code/src</tt>.  
 
#*Set ''Source folder'' to <tt>code/src</tt>.  
 
#*Set ''Output folder'' to <tt>code/bin</tt>.  
 
#*Set ''Output folder'' to <tt>code/bin</tt>.  
#*Set ''Target Platform'' to <tt>an OSGi framework: Equinox</tt>.  
+
#Set ''Target Platform'' to <tt>an OSGi framework: Equinox</tt>.  
 
#Click ''Next''.  
 
#Click ''Next''.  
 
#Fill in the metadata information for the new bundle. Set the plug-in's name as ID, your bundle's version, a reasonable bundle name and the information about the provider (i.e. you). For our example we select:  
 
#Fill in the metadata information for the new bundle. Set the plug-in's name as ID, your bundle's version, a reasonable bundle name and the information about the provider (i.e. you). For our example we select:  

Revision as of 11:33, 18 January 2012

This page descibes how to create a new test bundle for SMILA.The description on how to add a plug-in bundle can be found in How to create a bundle (plug-in). This HowTo is similar with only minor differences.

Create the empty project

The following steps must be performed to create the test project base:

  1. Launch Eclipse and select your SMILA workspace.
  2. Select File > New > Projectand click Plug-in Project.
  3. Click Next.
    Now you have to fill in various metadata and settings for your plug-in project. You may as well edit some of the settings later on by opening the MANIFEST.MF with the Plug-in Manifest editor.
  4. Enter a project name (you should use the same name as the bundle that should be tested and append a .test to it, for this example we will use org.eclipse.smila.integration.bundle.test).
  5. Add code as a parent to the source and output folder:
    • Set Source folder to code/src.
    • Set Output folder to code/bin.
  6. Set Target Platform to an OSGi framework: Equinox.
  7. Click Next.
  8. Fill in the metadata information for the new bundle. Set the plug-in's name as ID, your bundle's version, a reasonable bundle name and the information about the provider (i.e. you). For our example we select:
    • ID: org.eclipse.smila.integration.bundle.test (in our example)
    • Version: 1.0.0
    • Name: Example Bundle Plugin Test
    • Provider: Example company
    • Exection Environment: JavaSE-1.6
  9. Normally you won't need an activator in the test bundle, so uncheck this option.
  10. Click Next.
  11. Uncheck the Option Create a plug-in using one of the templates.
  12. Click Finish.

Create a test suite file

Now you should create a test suite in your test bundle.

  • Open your MANIFEST.MF file
  • Switch to the Dependencies page.
  • in Imported Packages click Add..
  • add junit.framework (3.8.2)
  • Save MANIFEST.MF
  • Create a package in code/src with the same name as your bundle (in our example org.eclipse.smila.integration.bundle.test).
  • Add an empty test suite named AllTests.java
    • Here you can add all your bundle's tests after you've created them.

Prepare the testing gear

Now you have to make some additions to the project in order to be able to integrate it into the build process or create plug-in test launchers.

Prepare launcher

  • Create a configuration folder in your test bundle's root folder.
  • Add this configuration folder to your build.properties
  • add a log4j.properties file in your configuration folder
  • if you need plug-ins to be started for your test (which is normally the case), create a config.ini file in your configuration folder containing your OSGi bundles config.
  • Create a JUnit Plug-in Test launcher for your AllTests.java suite.
  • open the launcher
    • Test panel:
      • set the name to the bundle's name (here: org.eclipse.smila.integration.bundle.test).
      • set the Test runner to JUnit 3
    • Arguments panel:
      • set the Program arguments to -os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}
      • set the VM arguments to -Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger -Dlog4j.configuration=file:${eclipse_home}configuration/log4j.properties -Xms40m -Xmx256m
      • If you need additional configuration or test data files (files/folders you store in your configuration folder), you also add the following line to your VM arguments: -Dorg.eclipse.smila.utils.config.root=./configuration
        • (to add this line is a good idea in any case.)
    • Configuration panel:
      • if you have a config.ini, you have to reference it here:
        • check Use an existing config.ini file as a template
        • Point the location to your bundle's config.ini (example: ${workspace_loc:org.eclipse.smila.integration.bundle.test/configuration/config.ini}).

Hint: You can configure eclipse to add VM arguments each time a launcher is created:

  • Window --> Preferences --> Plug-in Development --> Target Platform --> Edit...
    • In the Arguments page you can set the VM arguments that will be added to each new launch configuration.

Prepare automated testing during build process

To enable the builder (using make.xml) to test your bundle automatically, you have to provide an ant file named test.xml. The easiest way is to copy one from an already existing test bundle (e.g. org.eclipse.smila.jobmanager.test).

  • Copy the test.xml file to your test bundle's root folder.
  • Edit the test.xml file:
    • Set the plugin-name property to your test bundle's name (in our example: org.eclipse.smila.integration.bundle.test).
    • Save the file.
  • include test.xml in the test bundle's build.properties