Difference between revisions of "Automated PDE JUnit Testing With Eclipse 3.3M5"

From Eclipsepedia

Jump to: navigation, search
m
m (add details about library.xml fix)
Line 3: Line 3:
 
== History ==
 
== History ==
  
After 3.3M4, Modeling builds [https://bugs.eclipse.org/bugs/show_bug.cgi?id=170831 no longer ran their JUnit tests], due to changes in the way Eclipse packages its startup jars. I had thought the fix was trivial, but unfortunately [https://bugs.eclipse.org/bugs/show_bug.cgi?id=170831#c3 there's more to it than is explained below]. I'll update this document when I find a solution.
+
After 3.3M4, Modeling builds [https://bugs.eclipse.org/bugs/show_bug.cgi?id=170831 no longer ran their JUnit tests], due to changes in the way Eclipse packages its startup jars. The fix is trivial, but requires a change to [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.test/library.xml?view=log org.eclipse.test/library.xml] in addition to your local releng code.
  
 
  [echo] Running org.eclipse.someproject.tests.AllTests
 
  [echo] Running org.eclipse.someproject.tests.AllTests
Line 13: Line 13:
 
  [java] Unable to access jarfile ''{dd}''/2.3.0/N200701240200/testing/N200701240200/testing/target/eclipse/startup.jar
 
  [java] Unable to access jarfile ''{dd}''/2.3.0/N200701240200/testing/N200701240200/testing/target/eclipse/startup.jar
  
: - or -
+
== Migration Guide ==
  
[exec] eclipse-test:
 
[exec]      [echo] Running org.eclipse.ocl.uml.tests.AllTests
 
[exec]      [java] java.lang.NullPointerException
 
[exec]      [java] at org.eclipse.equinox.launcher.Main.takeDownSplash(Main.java:1734)
 
[exec]      [java] at org.eclipse.equinox.launcher.Main.run(Main.java:1150)
 
[exec]      [java] at org.eclipse.equinox.launcher.Main.main(Main.java:1099)
 
 
== Migration Guide ==
 
  
 
* These changes should apply to anyone using PDE for builds & included JUnit tests.
 
* These changes should apply to anyone using PDE for builds & included JUnit tests.
Line 42: Line 34:
 
| <code style="color:red">org.eclipse.core.launcher.Main</code>
 
| <code style="color:red">org.eclipse.core.launcher.Main</code>
 
| <code style="color:green">org.eclipse.equinox.launcher.Main</code>
 
| <code style="color:green">org.eclipse.equinox.launcher.Main</code>
|- valign="top"
 
| [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.mdt/org.eclipse.ocl.releng/builder/tests/customTargets.xml?root=Modeling_Project&view=markup customTargets.xml] (library.xml hack)
 
| add -nosplash flag
 
| <code style="color:red"></code>
 
| <code style="color:green">-nosplash</code>
 
 
|}
 
|}
  
Line 69: Line 56:
 
| <code>org.eclipse.*.launcher.Main</code>
 
| <code>org.eclipse.*.launcher.Main</code>
 
|}
 
|}
 +
 +
 +
* These changes apply to you if you use org.eclipse.test (eg., in your map file, or if you run org.eclipse.test/library.xml).
 +
 +
 +
plugin@org.eclipse.test=v20060926,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,
 +
 +
 +
This is fixed by moving up to the latest version of [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.test/library.xml?view=log org.eclipse.test/library.xml], according to the fix posted in [https://bugs.eclipse.org/bugs/show_bug.cgi?id=171756#c5 bug 171756]. If you can't move up, there's a hack documented in that bug as well, including a fix to avoid <code>NullPointerException at o.e.equinox.launcher.Main.takeDownSplash (Main.java:1734)</code>, using the <code>-nosplash</code> flag.
 +
 +
 +
 
== Running Tests ==
 
== Running Tests ==
  
Line 81: Line 80:
  
 
The variables noted in the above example can be seen in detail in the [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.mdt/org.eclipse.ocl.releng/builder/tests/scripts/runtests?root=Modeling_Project&view=markup runtests] shell script.
 
The variables noted in the above example can be seen in detail in the [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.mdt/org.eclipse.ocl.releng/builder/tests/scripts/runtests?root=Modeling_Project&view=markup runtests] shell script.
 +
  
 
== Links ==
 
== Links ==
Line 89: Line 89:
 
* [[Equinox Launcher]] (history of changes including related Bugzillas)
 
* [[Equinox Launcher]] (history of changes including related Bugzillas)
 
* [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.test/testframework.html?view=co Eclipse Test Framework]
 
* [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.test/testframework.html?view=co Eclipse Test Framework]
 +
  
 
== Bugs ==
 
== Bugs ==

Revision as of 16:22, 31 January 2007

Contents

History

After 3.3M4, Modeling builds no longer ran their JUnit tests, due to changes in the way Eclipse packages its startup jars. The fix is trivial, but requires a change to org.eclipse.test/library.xml in addition to your local releng code.

[echo] Running org.eclipse.someproject.tests.AllTests
[java] Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/core/launcher/Main
- or -
[echo] Running org.eclipse.emf.test.build.AllSuites
[java] Unable to access jarfile {dd}/2.3.0/N200701240200/testing/N200701240200/testing/target/eclipse/startup.jar

Migration Guide

  • These changes should apply to anyone using PDE for builds & included JUnit tests.


Filename Explanation Before After
runtests switch from startup.jar to org.eclipse.equinox.launcher_*.jar cp="eclipse/startup.jar" cp=`find eclipse/ -name "org.eclipse.equinox.launcher_*.jar" | sort | head -1`
runtests switch Main classes org.eclipse.core.launcher.Main org.eclipse.equinox.launcher.Main



Filename Explanation Before After
relengbuildgtk.sh don't pass -cp into runtests script to override value set there runtests -os linux -ws gtk -arch x86 -cp eclipse/startup.jar runtests -os linux -ws gtk -arch x86
runtests remove -noupdate flag (not supported anymore) org.eclipse.*.launcher.Main -noupdate org.eclipse.*.launcher.Main


  • These changes apply to you if you use org.eclipse.test (eg., in your map file, or if you run org.eclipse.test/library.xml).


plugin@org.eclipse.test=v20060926,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,


This is fixed by moving up to the latest version of org.eclipse.test/library.xml, according to the fix posted in bug 171756. If you can't move up, there's a hack documented in that bug as well, including a fix to avoid NullPointerException at o.e.equinox.launcher.Main.takeDownSplash (Main.java:1734), using the -nosplash flag.


Running Tests

To run tests, you'll need something like this:

$JAVA_HOME/bin/java $Xflags -enableassertions -cp $cp \
  org.eclipse.equinox.launcher.Main -ws $ws -os $os -arch $arch \
  -application org.eclipse.ant.core.antRunner -data $workspaceDir \
  -file test.xml $antTestTarget \
  $Dflags -Dws=$ws -Dos=$os -Darch=$arch -D$installmode=true $J2SE15flags \
  $properties -logger org.apache.tools.ant.DefaultLogger

The variables noted in the above example can be seen in detail in the runtests shell script.


Links


Bugs