Wenn ich versuche, die Testsuite auszuführen, erhalte ich diese Ausnahme. Wir verwenden das Maven-Projekt hier, und ich bin mit dem Aktualisieren, Reinigen, erneutem Installieren von TestNG und dem Importieren der Maven-Projekte fertig, bekomme aber auch die gleiche Ausnahme. Bitte schlagen Sie alle Möglichkeiten vor, die hier fehlen.
Fehlerkonsole:
org.testng.TestNGException:
Cannot find class in classpath: EmpClass
at org.testng.xml.XmlClass.loadClass(XmlClass.Java:81)
at org.testng.xml.XmlClass.init(XmlClass.Java:73)
at org.testng.xml.XmlClass.<init>(XmlClass.Java:59)
at org.testng.xml.TestNGContentHandler.startElement(TestNGContentHandler.Java:543)
at com.Sun.org.Apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.Java:509)
at com.Sun.org.Apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.Java:182)
at com.Sun.org.Apache.xerces.internal.impl.dtd.XMLDTDValidator.emptyElement(XMLDTDValidator.Java:766)
at com.Sun.org.Apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.Java:1350)
at com.Sun.org.Apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.Java:2778)
at com.Sun.org.Apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.Java:606)
at com.Sun.org.Apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.Java:510)
at com.Sun.org.Apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.Java:848)
at com.Sun.org.Apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.Java:777)
at com.Sun.org.Apache.xerces.internal.parsers.XMLParser.parse(XMLParser.Java:141)
at com.Sun.org.Apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.Java:1213)
at com.Sun.org.Apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.Java:649)
at com.Sun.org.Apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.Java:333)
at javax.xml.parsers.SAXParser.parse(SAXParser.Java:195)
at org.testng.xml.XMLParser.parse(XMLParser.Java:39)
at org.testng.xml.SuiteXmlParser.parse(SuiteXmlParser.Java:17)
at org.testng.xml.SuiteXmlParser.parse(SuiteXmlParser.Java:10)
at org.testng.xml.Parser.parse(Parser.Java:168)
at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.Java:311)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.Java:88)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.Java:204)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.Java:175)
Ich habe auch die gleiche Ausnahme:
Ich habe folgende Schritte ausprobiert:
In Eclipse> Projekt> Reinigen. (Die Ausnahme blieb erhalten)
Ich habe ein anderes Projekt ausgeführt (Die testng.xml wurde erfolgreich ausgeführt)
Nach dem Ausführen eines anderen Projekts habe ich das Projekt ausgeführt, in dem ich die Ausnahme bekam, und glücklicherweise hat es für mich ohne Fehler funktioniert.
Sie müssen die Runner-XML-Datei für Tests ... bearbeiten. Siehe folgendes Beispiel:
<test name="Employees Test">
<classes>
<class name="packagename.classname">
</class>
</classes>
</test>
In der Zeile <class name="packagename.classname">
müssen Sie den Namen des Testpakets und den Namen der Klasse eingeben, die Sie ausführen möchten.
Vielen Dank und wünsche Ihnen alles Gute.
Ich hatte ein ähnliches Problem beim Importieren von Maven mit dem Testng-Projekt. Dieses Problem wurde gelöst, indem Sie erneut in ein TestNg-Projekt konvertieren
klicken Sie mit der rechten Maustaste auf Eclipse-Projekt> TestNG> In TestNG konvertieren
und Ersetzen der vorhandenen testng.xml
-Datei durch die neu erstellte. Bereinigen und Aktualisieren des Maven-Projekts mit mvn install
Hinweis: Sichern Sie Ihren testng.xml
Gehen Sie zu Projekt> Erstellungspfad> Erstellungspfad konfigurieren> Bibliotheken> Fehlerbibliotheken entfernen
Nach Projekt aktualisieren und Programm erneut ausführen.
Projekt >> Clean and Maven >> Update Das Projekt hat für mich funktioniert
Meine 2 Cent zum Problem: Ich hatte das gleiche Problem, während ein Teil meines Weges auf kyrillisch war. Überprüfen Sie daher den Pfad zu Ihrem Projekt auf Sonderzeichen. Nachdem ich das entfernt hatte, wurde das Problem behoben
Ich hatte das gleiche Problem, als ich die Abhängigkeit von Selenium 3.11.xx verwendete. Mein Problem wurde jedoch behoben, als ich die Abhängigkeit von Selenium 3.4.x verwendete.
Ich bin auch mit TestNG Version 6.14.2 auf dasselbe Problem gestoßen
Dies lag jedoch an einem törichten Fehler in meinem Ende und es gibt keinerlei Probleme mit Maven, Testng oder Eclipse. Was ich tat, war -
Sie sollten zuerst package erstellen und dann unter diesem Paket eine neue TestNG-Klasse erstellen.
Entfernen Sie in der Datei testng.xml "." vom Tag "" Klassennamen, wenn Sie keine Pakete verwenden.
Ich hatte das gleiche Problem, als ich mein Projekt von IntelliJ IDEA von einem PC auf einen anderen importierte.
Die untenstehende Lösung funktionierte für mich:
Meiner Meinung nach, wenn src Test/Java/-Ordner hat, sollte sich der Pfad im Build-Pfad wie Ziel/Test-Klassen befinden.
Wenn src über Haupt-/Java/-Ordner verfügt, sollte sich der Pfad im Build-Pfad wie Ziel/Klassen befinden.
Für mich war das Problem sehr seltsam.
Ich habe eine testng.xml-Datei im Stammverzeichnis meines Eclipse-Projekts. Wenn ich die Datei über Eclipse änderte, wurde die Datei testng.xml in meinem Verzeichnis nicht geändert.
Es stellte sich heraus, dass er eine Kopie des Ordners in den Eclipse-Arbeitsbereich erstellt hat.
Hoffe, das hilft jemandem
Für mich bestand das Problem darin, dass ich den Test von der Kompilierung im POM ausgeschlossen habe. Meine pom.xml sah so aus:
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<testExcludes>
<exclude>com/mycompany/app/AppTest.Java</exclude>
</testExcludes>
</configuration>
</plugin>
Nachdem ich <exclude>
entfernt hatte, konnte ich die Tests erneut in AppTest.Java
ausführen.
Ich hatte auch dieses Problem ... Ich verwende IntelliJ IDEA. Ich verwendete src/main/Java
für Konfigurationsdateien und src/test/Java
für Testdateien.
Aufgrund dessen konnte testNG den Klassenpfad nicht finden. Um diesen Fehler zu vermeiden, müssen Sie alle Dateien von src/main/Java
nach src/test/Java
oder umgekehrt verschieben.
Die IDE funktionierte wieder. Die Lösung ist ziemlich witzig - und selbst eine Neuinstallation und das Löschen der IDE behebt es nicht unter Windows. In diesem Fall müssen Sie zu den TestNG-Laufkonfigurationen gehen und sie alle löschen. Dies bezieht sich auf den TestNG-XML-Klassenpfadfehler unter Windows. Ich verwende Spring Tools Suite 3.6.4.
Stellen Sie sicher, dass Sie alle Konfigurationen löschen, stellen Sie sicher, dass das Projekt erstellt werden kann. Wenn keine Probleme auftreten, sollte der Test jetzt ausgeführt werden.
Grüße - Anthony Toorie
Dieses Problem kann durch Hinzufügen des TestNG.class-Pakets zum OnlineStore-Paket behoben werden (siehe unten)
Ich hatte ein ähnliches Problem und das Projekt hatte einige Build-Fehler ... Ich habe Sudo -R 777 für das Projekt erstellt und dann habe ich mein Projekt aufgeräumt.
Ich hoffe es hilft.
Lassen Sie mich mitteilen, was bei mir funktioniert hat:
Wenn wir "mvn clean" ausführen - wir bereinigen alte kompilierte Klassen. Bitte gehen Sie zu "Ihr Projektverzeichnis -> Ziel". Sie werden feststellen, dass dieser Ordner bereinigt wird, da MVN dort die kompilierten Artefakte ablegt
Da es sich bereits um ein MAVEN-Projekt handelt, wechseln Sie in Ihren Projektordner und öffnen Sie es in der Eingabeaufforderung. Wenn Sie "mvn clean" und dann "mvn test" -> "mvn test" eingeben, werden alle kompilierten Dateien in den richtigen Ordnern abgelegt. Anschließend können Sie Ihre Tests über TestNG oder MAVEN selbst ausführen.
Stellen Sie sicher, dass Sie "M2_HOME" oder "MAVEN_HOME" in Ihrem Umgebungspfad eingerichtet haben. Manchmal funktioniert "MAVEN_HOME" nicht. Fügen Sie daher auch "M2_HOME" hinzu.
Die obigen Vorschläge haben für mich funktioniert, also wollte ich teilen, viel Glück
Ich bin auf die gleiche Frage gestoßen, die ich heute schon gesagt habe. ** Das erneute Setzen des Klassenpfads in Eclipse ** hat das Problem behoben.
In meinem Fall habe ich maven project als Standardprojekt in Eclipse importiert. Danach habe ich als maven project importiert. Das hat bei mir funktioniert.
Stellen Sie sicher, dass Ihre Klasse unter src steht.
fügen Sie den Paketnamen mit Klasse hinzu. Es wird Ihren Namen entfernen. Ich hatte auch das gleiche Problem, aber das Hinzufügen des Paketnamens mit class behebte dieses Problem.
Hinweis: Sie müssen den Klassennamen zusammen mit den Paketen wie unten angegeben angeben.
<suite name="testNGLearning">
<test name="simpleTest">
<classes>
<class name="testngTests.TestNGSimpleTest" />
<class name="testngTests.TestMessageUtil" />
</classes>
</test>
</suite>
Für mich war es so, dass ich Skip Tests Checkbox/Flag im Maven Build des Projekts hinzugefügt habe
Daher wurden die Testklassen nicht zusammengestellt und dann von TestNG nicht gefunden
Ich hatte den gleichen Fehler, als ich meine Tests in einem JSF-Projekt ausführen wollte.
Ich benutze Eclipse IDE (Kepler). Also habe ich "Projekt> Reinigen" durchgeführt und dann die Tests des gleichen Projekts erneut ausgeführt.
Es funktionierte!
Ich hatte bis vor kurzem keine Probleme damit.
Jetzt musste ich die XML-Testdatei der Suite in das Stammverzeichnis des Projekts verschieben, das ich testete.
Es kann sein, dass es eine Einstellung gibt, die auf die von mir getesteten Klassen verweist, aber ich habe sie nicht gefunden.