Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Automated PDE JUnit Testing With Eclipse 3.3M5
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
|
- These changes may be specific to only Modeling project builds, including EMFT builds.
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=v20070217,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,
This is fixed by moving up to the latest version (v20070217) of org.eclipse.test/library.xml, per bug 171756.
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
- FAQ How do I run Eclipse? (including starting eclipse with
java -cp ... org.eclipse....Main
) - Starting Eclipse Commandline With Equinox Launcher (Ant, Shell, Windows Batch/Cmd)
- Eclipse Program Launcher (including commandline flags)
- Eclipse Runtime Options (including commandline flags)
- Equinox Launcher (history of changes including related Bugzillas)
- Eclipse Test Framework
Bugs
- https://bugs.eclipse.org/bugs/show_bug.cgi?id=173742 (discussion about startup.jar)
-
https://bugs.eclipse.org/bugs/show_bug.cgi?id=171756RESOLVED -
https://bugs.eclipse.org/bugs/show_bug.cgi?id=170831RESOLVED -
https://bugs.eclipse.org/bugs/show_bug.cgi?id=62760RESOLVED