Iulia Madalina Vasii
2018-02-06 12:23:37 UTC
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!
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!