I've noticed a lot of discussion on ClassLoading with respect to resources, but little on loading classes themselves. Of the following tests, only the test useObjectClassLoader() works in surefire. In normal TestNG both tests will pass. I've noticed a test using URLClassloader (ie plugin system loading jars) also fails with the same problem. Is there a different URL required for system classloader when running surefire?, or is there a configuration setting I need to get surefire to treat the URLs as it does at the command line? Thanks.

   @Test
   public void useObjectClassLoader() throws ClassNotFoundException {

       Class type = getClass().getClassLoader().loadClass(
               "com.oculus.test.TestObject");
         // works
       Assert.assertEquals(type, TestObject.class);
   }

   @Test
   public void useSystemClassLoader() throws ClassNotFoundException {

       // thows exeception here
       Class type = ClassLoader.getSystemClassLoader().loadClass(
               "com.oculus.test.TestObject");

       Assert.assertEquals(type, TestObject.class);
   }


Oh and "TestObject" is in the same package as the tests. Here is the exception:

java.lang.ClassNotFoundException: TestObject
   at java.net.URLClassLoader$1.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.net.URLClassLoader.findClass(Unknown Source)
   at java.lang.ClassLoader.loadClass(Unknown Source)
   at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
   at java.lang.ClassLoader.loadClass(Unknown Source)
   at com.oculus.test.Runner.useSystemClassLoader(Runner.java:20)



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to