Hallo,
Ich lade eine externe Klasse (JUnitTest) mit URLClassLoader. Anschließend erfolgt die Ausführung des Tests. Dabei erhalte ich eine Fehlermeldung. Wird der ParentClassloader verwendet, verläuft der Test problemlos. Kann mir jemand sagen warum der Testfall nicht ausgeführt werden kann ?
Fehlermeldung
Ich lade eine externe Klasse (JUnitTest) mit URLClassLoader. Anschließend erfolgt die Ausführung des Tests. Dabei erhalte ich eine Fehlermeldung. Wird der ParentClassloader verwendet, verläuft der Test problemlos. Kann mir jemand sagen warum der Testfall nicht ausgeführt werden kann ?
Fehlermeldung
Code:
.F
Time: 0
There was 1 failure:
1) warning(junit.framework.TestSuite$1)junit.framework.AssertionFailedError: No tests found in classloader.JUnitTest
at classloader.ClassLoader.main(ClassLoader.java:22)
FAILURES!!!
Tests run: 1, Failures: 1, Errors: 0
Java:
package classloader;
import junit.framework.TestCase;
import org.junit.*;
public final class JUnitTest extends TestCase {
public JUnitTest() {
//
}
@Test
public void Sample() {
// Test
System.out.println("testSample");
Assert.assertTrue(true);
}
}
Java:
package classloader;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.logging.Level;
import java.util.logging.Logger;
import junit.framework.TestCase;
public class ClassLoader {
public static void main(String[] args) {
File file = new File("/classloader");
try {
URLClassLoader loader = new URLClassLoader(new URL[] {file.toURI().toURL()}, null);
Class<? extends TestCase> clazz = (Class<? extends TestCase>) loader.loadClass("classloader.JUnitTest");
junit.textui.TestRunner.run(clazz);
} catch (ClassNotFoundException | MalformedURLException ex) {
Logger.getLogger(ClassLoader.class.getName()).log(Level.SEVERE, null, ex);
}
}
}