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

From Eclipsepedia

Jump to: navigation, search
m (History)
m (History)
Line 7: Line 7:
 
  [echo] Running org.eclipse.someproject.tests.AllTests
 
  [echo] Running org.eclipse.someproject.tests.AllTests
 
  [java] Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/core/launcher/Main
 
  [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 ==
 
== Migration Guide ==

Revision as of 17:58, 25 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, and will be explained below.

[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

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