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?
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