Hello,
I’m new to tycho and I’m struggling to make
some Junit tests running with maven/tycho from command line.
They work fine from Eclipse IDE (Run As -> Junit Plug-in
Test), but fail in command line. More details below:
- I have a plug-in:
com.nxp.s32ds.cle.uct.core
- I created a fragment for unit tests:
com.nxp.s32ds.cle.uct.core.tests
It contains unit tests which access the
workspace (creates and removes projects).
The packaging is “eclipse-test-plugin” in
the pom file.
- I use
<tycho-version>0.26.0</tycho-version>
These two require other bundles to compile,
which I specified in the parent pom.xml:
<repositories>
<repository>
<id>neon-local</id>
<layout>p2</layout>
<url>${nexus.url}/content/repositories/neon3</url>
</repository>
<repository>
<id>eclipse-updates-4.6</id>
<layout>p2</layout>
<url>${nexus.url}/content/repositories/eclipse-updates-4.6</url>
</repository>
<repository>
<id>uct</id>
<layout>p2</layout>
<url>jar:
${nexus.url}/builds/com.uct.updatesites-1.0.0-SNAPSHOT.zip!/</url>
</repository>
</repositories>
Everything works fine from Eclipse IDE, I
am able to compile and execute the tests successfully.
From command line, “mvn clean verify” it
fails in the test plugin with this message:
[INFO]
Command line:
[C:\Program Files\Java\jdk1.8.0_101\jre\bin\java.exe,
-Dosgi.noShutdown=false, -Dosgi.os=win32, -Dosgi.ws=win32,
-Dosgi.arch=x86_64, -ea, -Dosgi.clean=true, -jar,
C:\Users\B05648\.m2\repositor
y\p2\osgi\bundle\org.eclipse.equinox.launcher\1.3.201.v20161025-1711\org.eclipse.equinox.launcher-1.3.201.v20161025-1711.jar,
-data,
C:\HOME\AMP_TOOLS\Repos\DS\cle_uct\tests\com.nxp.s32ds.cle.uct.core
.tests\target\work\data,
-install,
C:\HOME\AMP_TOOLS\Repos\DS\cle_uct\tests\com.nxp.s32ds.cle.uct.core.tests\target\work,
-configuration,
C:\HOME\AMP_TOOLS\Repos\DS\cle_uct\tests\com.nxp.s32ds.cle.uct
.core.tests\target\work\configuration,
-application,
org.eclipse.tycho.surefire.osgibooter.headlesstest,
-testproperties,
C:\HOME\AMP_TOOLS\Repos\DS\cle_uct\tests\com.nxp.s32ds.cle.uct.core.tests\targ
et\surefire.properties]
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running
com.nxp.s32ds.cle.uct.core.tests.ProjectAdapterTest
Tests run:
6, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.11
sec <<< FAILURE! - in
com.nxp.s32ds.cle.uct.core.tests.ProjectAdapterTest
testToolchainId(com.nxp.s32ds.cle.uct.core.tests.ProjectAdapterTest)
Time elapsed: 0.001 sec
testPartNumber(com.nxp.s32ds.cle.uct.core.tests.ProjectAdapterTest)
Time elapsed: 0 sec
testEclipsePrj(com.nxp.s32ds.cle.uct.core.tests.ProjectAdapterTest)
Time elapsed: 0.085 sec <<< ERROR!
java.lang.NoClassDefFoundError:
com/nxp/swtools/sdkproject/EclipseProjectAdapterParams
at
org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:461)
at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:372)
at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:364)
at
org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:161)
at
java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at
java.lang.Class.getDeclaredConstructors0(Native Method)
at
java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
at
java.lang.Class.getConstructor0(Class.java:3075)
at
java.lang.Class.newInstance(Class.java:412)
at
org.eclipse.osgi.internal.framework.BundleContextImpl.loadBundleActivator(BundleContextImpl.java:758)
at
org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:711)
at
org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:932)
at
org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:309)
at
org.eclipse.osgi.container.Module.doStart(Module.java:581)
at
org.eclipse.osgi.container.Module.start(Module.java:449)
at
org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:470)
at
org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
at
org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:529)
at
org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:325)
at
org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:345)
at
org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:423)
at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:372)
at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:364)
at
org.eclipse.osgi.internal.framework.BundleContextImpl.loadBundleActivator(BundleContextImpl.java:757)
at
org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:711)
at
org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:932)
at
org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:309)
at
org.eclipse.osgi.container.Module.doStart(Module.java:581)
at
org.eclipse.osgi.container.Module.start(Module.java:449)
at
org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:470)
at
org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
at
org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:529)
at
org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:325)
at
org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:345)
at
org.eclipse.osgi.internal.loader.sources.SingleSourcePackage.loadClass(SingleSourcePackage.java:36)
at
org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:419)
at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:372)
at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:364)
at
org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:161)
at
java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at
com.nxp.s32ds.cle.uct.core.tests.ProjectAdapterTest.testEclipsePrj(ProjectAdapterTest.java:100)
testProcessor(com.nxp.s32ds.cle.uct.core.tests.ProjectAdapterTest)
Time elapsed: 0 sec
testToolchain(com.nxp.s32ds.cle.uct.core.tests.ProjectAdapterTest)
Time elapsed: 0 sec
testIncludePaths(com.nxp.s32ds.cle.uct.core.tests.ProjectAdapterTest)
Time elapsed: 0 sec
Results :
Tests in
error:
ProjectAdapterTest.testEclipsePrj:100 NoClassDefFound
com/nxp/swtools/sdkproje...
Tests run:
6, Failures: 0, Errors: 1, Skipped: 0
[INFO]
------------------------------------------------------------------------
[INFO]
Reactor Summary:
[INFO]
[INFO]
com.nxp.s32ds.cle.uct.root ......................... SUCCESS
[ 0.056 s]
[INFO]
com.nxp.s32ds.cle.uct.branding ..................... SUCCESS
[ 1.501 s]
[INFO]
com.nxp.s32ds.cle.uct.core ......................... SUCCESS
[ 0.809 s]
[INFO]
com.nxp.s32ds.cle.uct.feature ...................... SUCCESS
[ 0.230 s]
[INFO]
com.nxp.s32ds.cle.uct.repository ................... SUCCESS
[ 9.386 s]
[INFO]
com.nxp.s32ds.cle.uct.core.tests ................... FAILURE
[ 3.870 s]
[INFO]
------------------------------------------------------------------------
[INFO] BUILD
FAILURE
[INFO]
------------------------------------------------------------------------
[INFO] Total
time: 32.712 s
[INFO]
Finished at: 2018-02-06T14:12:24+02:00
[INFO] Final
Memory: 118M/1091M
[INFO]
------------------------------------------------------------------------
[ERROR]
Failed to execute goal
org.eclipse.tycho:tycho-surefire-plugin:0.26.0:test
(default-test) on project com.nxp.s32ds.cle.uct.core.tests:
There are test failures.
[ERROR]
[ERROR]
Please refer to
C:\HOME\AMP_TOOLS\Repos\DS\cle_uct\tests\com.nxp.s32ds.cle.uct.core.tests\target\surefire-reports
for the individual test results.
[ERROR]
-> [Help 1]
[ERROR]
[ERROR] To
see the full stack trace of the errors, re-run Maven with
the -e switch.
[ERROR]
Re-run Maven using the -X switch to enable full debug
logging.
[ERROR]
[ERROR] For
more information about the errors and possible solutions,
please read the following articles:
[ERROR]
[Help 1]
http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[ERROR]
[ERROR]
After correcting the problems, you can resume the build with
the command
[ERROR]
mvn <goals> -rf :com.nxp.s32ds.cle.uct.core.tests
The class it doesn’t find com/nxp/swtools/sdkproject/EclipseProjectAdapterParams
is part of “uct” repo specified in the parent pom.xml.
However, it seems that the test runtime does not find it.
There is no problem with that specified class, I tested and no
class is found from that repo.
Any suggestions how to add the dependencies
in the test runtime?
Thank you!