2016-11-29 4 views
1
verwenden

Ich versuche, ein Testautomatisierungs-Framework mit Maven und TestNG zu erstellen. Alle Testklassen in der Anwendung sind unter src/test/java Ordner geschrieben und alle Hilfsmethoden sind unter src/main/java geschrieben. Ich kann alle Testskripte mit pom.xml erfolgreich ausführen. Das Framework enthält auch eine Hauptmethode, aus der testng.xml dynamisch erstellt wird und die Testklassen ausgeführt werden. Im Hauptverfahren am Laden ich die Testklassen unter CodeWie Maven Test-Klassen in der Hauptklasse

File classDir = new File("C:/workspace/myproject/target/test-classes/packagename/testScripts/"); //This is the path of all the compiled test classes 
URL[] classUrl = {classDir.toURI().toURL()}; 
URLClassLoader urlClassLoader = new URLClassLoader(classUrl); 
Class<?> testClass=urlClassLoader.loadClass("packagename.testScripts.TestClassName"); 

aber es wirft Ausnahme

java.lang.ClassNotFoundException: packagename.testScripts.TestClassName 

Wie dieses Problem zu lösen?

+1

Sie kippe Zugang Testklassen aus einem Hauptmodul. Erstellen Sie stattdessen ein anderes Modul, zum Beispiel 'myapp-test-lib' und legen Sie die Klassen dort in den' main' Pfad. – vikingsteve

Antwort

0

Nach der FQN Ihrer Klasse, die packagename.testScripts.TestClassName ist, Ihre classDir nicht richtig eingestellt ist, sollte es eher:

File classDir = new File("C:/workspace/myproject/target/test-classes/"); 
Verwandte Themen