> -----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(ReflectionUt
> 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.

Reply via email to