> -----Original Message-----
> From: KARR, DAVID
> Sent: Wednesday, March 29, 2017 12:47 PM
> To: users@camel.apache.org
> Subject: RE: Issues running unit tests based on CamelTestSupport
> 
> > -----Original Message-----
> > From: KARR, DAVID
> > Sent: Wednesday, March 29, 2017 12:07 PM
> > To: users@camel.apache.org
> > Subject: Issues running unit tests based on CamelTestSupport
> >
> > I have only used Camel peripherally before.  I'm trying to get some
> > unit tests working that are based on CamelTestSupport.  When I run
> > "mvn install" from the command line, the tests attempt to execute, but
> > I get errors like this:
> >
> > -------------------
> > [ERROR] Failed to execute goal
> > org.apache.maven.plugins:maven-surefire-
> > plugin:2.19.1:test (default-test) on project ...: Execution
> > default-test of goal
> > org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test
> > failed: There was an error in the forked process [ERROR]
> > java.lang.NoClassDefFoundError: org/junit/rules/TestWatcher [ERROR] at
> > java.lang.ClassLoader.defineClass1(Native Method) [ERROR] at
> > java.lang.ClassLoader.defineClass(ClassLoader.java:763)
> > [ERROR] at
> > java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142
> > ) [ERROR] at
> > java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
> > [ERROR] at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
> > [ERROR] at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
> > [ERROR] at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
> > [ERROR] at java.security.AccessController.doPrivileged(Native Method)
> > [ERROR] at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
> > [ERROR] at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
> > [ERROR] at
> > sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
> > [ERROR] at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
> > [ERROR] at java.lang.Class.getDeclaredMethods0(Native Method) [ERROR]
> > at
> > java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
> > [ERROR] at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
> > [ERROR] at java.lang.Class.getMethod0(Class.java:3018)
> > [ERROR] at java.lang.Class.privateGetMethodRecursive(Class.java:3058)
> > [ERROR] at java.lang.Class.getMethod0(Class.java:3018)
> > [ERROR] at java.lang.Class.getMethod(Class.java:1784)
> > [ERROR] at
> > org.apache.maven.surefire.util.ReflectionUtils.tryGetMethod(Reflection
> > Ut
> > ils.java:61)
> > -----------------
> >
> > I've verified that this class is in the junit artifact, which is set
> > as a dependency in the module (test scope).  Is there something funky
> > about how Camel tests execute that are not obvious to me?
> 
> After some more digging, I see that the "camel-test" artifact references
> the "org.junit.rules.TestName" class, which in some older versions of
> Junit (4.12 for instance) extends a "TestWatcher" class, although in
> newer versions that is changed to "TestWatchman".  I still can't figure
> out the root cause for this.

I'm specifying the use of Junit 4.8.1 in my dependencies.  In Eclipse, if I 
manually add the Junit 4.12 jar to the end of the classpath for my test 
configuration, it gets past this error.  That's not really a workable solution, 
but it's at least some information.

Reply via email to