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

From Eclipsepedia

Jump to: navigation, search
m
m
Line 7: Line 7:
 
#Launch Eclipse and select your SMILA workspace.  
 
#Launch Eclipse and select your SMILA workspace.  
 
#Select ''File > New > Project''and click ''Plug-in Project''.  
 
#Select ''File > New > 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> file 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>).  
 
#Add <tt>code</tt> as a parent to the source and output folder:  
 
#Add <tt>code</tt> as a parent to the source and output folder:  
Line 43: Line 43:
 
=== Prepare launcher  ===
 
=== Prepare launcher  ===
  
*Create a <tt>configuration</tt> folder in your test bundle's root folder.  
+
#Create a <tt>configuration</tt> folder in your test bundle's root folder.  
*Add this configuration folder to your build.properties  
+
#Add this configuration folder to your <tt>build.properties</tt>.
*add a <tt>log4j.properties</tt> file in your configuration folder  
+
#Add a <tt>log4j.properties</tt> file to your <tt>configuration</tt> folder.
*if you need plug-ins to be started for your test (which is normally the case), create a <tt>config.ini</tt> file in your configuration folder containing your OSGi bundles config.  
+
#If you need plug-ins to be started for your test (which is normally the case), create a <tt>config.ini</tt> file in your <tt>configuration</tt> folder containing your OSGi bundles config.  
*Create a JUnit Plug-in Test launcher for your AllTests.java suite.
+
#Create a JUnit Plug-in Test launcher for your <tt>AllTests.java</tt> suite:
*open the launcher
+
#*Select ''Run'' &gt; ''Run Configurations''.
**Test panel:
+
#*Select the ''JUnit Plug-Test'' node and click ''New''.
***set the name to the bundle's name (here: <tt>org.eclipse.smila.integration.bundle.test</tt>).  
+
#*Set the name to the bundle's name (here: <tt>org.eclipse.smila.integration.bundle.test</tt>).  
***set the Test runner to <tt>JUnit 3</tt>  
+
#*On the ''Test'' page:
**Arguments panel:  
+
#**Select which class to test.
***set the Program arguments to <tt>-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}</tt>  
+
#**Set the ''Test runner'' to <tt>JUnit 3</tt>.
***set the VM arguments to <tt>-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger -Dlog4j.configuration=file:${eclipse_home}configuration/log4j.properties -Xms40m -Xmx256m</tt>  
+
#*On the ''Arguments'' page:  
***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: <tt>-Dorg.eclipse.smila.utils.config.root=./configuration</tt>  
+
#**Set the ''Program arguments'' to <tt>-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}</tt>.
****(to add this line is a good idea in any case.)  
+
#**Set the ''VM arguments'' to <tt>-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger -Dlog4j.configuration=file:${eclipse_home}configuration/log4j.properties -Xms40m -Xmx256m</tt>.
**Configuration panel:  
+
#**If you need additional configuration or test data files (files/folders you store in your configuration folder), you should also add the following parameter to the VM arguments: <tt>-Dorg.eclipse.smila.utils.config.root=./configuration</tt> (adding this parameter is a good idea in any case).
***if you have a <tt>config.ini</tt>, you have to reference it here:  
+
#*On the ''Configuration'' panel:  
****check ''Use an existing config.ini file as a template''  
+
#**If you have a <tt>config.ini</tt>, you have to reference it here:  
****Point the location to your bundle's config.ini (example: <tt>${workspace_loc:org.eclipse.smila.integration.bundle.test/configuration/config.ini}</tt>).
+
#***Check ''Use an existing config.ini file as a template''.
 +
#***Click ''Workspace'' and navigate to the config.ini (example path: <tt>${workspace_loc:org.eclipse.smila.integration.bundle.test/configuration/config.ini}</tt>).
  
''Hint:'' You can configure eclipse to add VM arguments each time a launcher is created:  
+
''Hint:'' You can configure Eclipse to add VM arguments each time a launcher is created:  
  
*Window --&gt; Preferences --&gt; Plug-in Development --&gt; Target Platform --&gt; Edit...  
+
#Window --&gt; Preferences --&gt; Plug-in Development --&gt; Target Platform --&gt; Edit...  
**In the Arguments page you can set the VM arguments that will be added to each new launch configuration.
+
#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  ===
 
=== Prepare automated testing during build process  ===

Revision as of 12:58, 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.

Contents

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

  1. Open your MANIFEST.MF file.
  2. Switch to the Dependencies page.
  3. In Imported Packages click Add.
  4. Add junit.framework (3.8.2).
  5. Save MANIFEST.MF.
  6. Create a package in code/src with the same name as your bundle (in our example it is org.eclipse.smila.integration.bundle.test).
  7. 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

  1. Create a configuration folder in your test bundle's root folder.
  2. Add this configuration folder to your build.properties.
  3. Add a log4j.properties file to your configuration folder.
  4. 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.
  5. Create a JUnit Plug-in Test launcher for your AllTests.java suite:
    • Select Run > Run Configurations.
    • Select the JUnit Plug-Test node and click New.
    • Set the name to the bundle's name (here: org.eclipse.smila.integration.bundle.test).
    • On the Test page:
      • Select which class to test.
      • Set the Test runner to JUnit 3.
    • On the Arguments page:
      • 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 should also add the following parameter to the VM arguments: -Dorg.eclipse.smila.utils.config.root=./configuration (adding this parameter is a good idea in any case).
    • On the Configuration panel:
      • If you have a config.ini, you have to reference it here:
        • Check Use an existing config.ini file as a template.
        • Click Workspace and navigate to the config.ini (example path: ${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:

  1. Window --> Preferences --> Plug-in Development --> Target Platform --> Edit...
  2. 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