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!