web-dev-qa-db-de.com

Fehler: org.testng.TestNGException: Klasse kann im Klassenpfad nicht gefunden werden: EmpClass

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)
19
user2991323

Ich habe auch die gleiche Ausnahme:

Ich habe folgende Schritte ausprobiert:

  1. In Eclipse> Projekt> Reinigen. (Die Ausnahme blieb erhalten)

  2. 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.

14
user3640657

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.

9

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 

8
zishan paya

Gehen Sie zu Projekt> Erstellungspfad> Erstellungspfad konfigurieren> Bibliotheken> Fehlerbibliotheken entfernen

Nach Projekt aktualisieren und Programm erneut ausführen.

4
siraj

Projekt >> Clean and Maven >> Update Das Projekt hat für mich funktioniert

3
Amit

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

2
Jeni

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.

1
Sachin Singh

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 -

  1. Projekt als "mvn clean" ausführen
  2. Wählen Sie die Datei "testng.xml" aus und klicken Sie mit der rechten Maustaste darauf, um sie als TestNG-Suite auszuführen
  3. Dies gab mir den gleichen Fehler wie in der ursprünglichen Frage
  4. Mir wurde schnell klar, dass ich das Projekt nicht kompiliert habe und die erforderlichen Klassendateien nicht generiert wurden, die der TestNG später verwenden würde
  5. Der "Zielordner" wird erst generiert, nachdem das Projekt kompiliert wurde (Ausführen als "Mvn Build").
  6. Wenn Ihr Projekt kompiliert ist, sollte dieses Problem nicht vorhanden sein.
1
realnikunj

Sie sollten zuerst package erstellen und dann unter diesem Paket eine neue TestNG-Klasse erstellen.

0
AaShir Haq

Entfernen Sie in der Datei testng.xml "." vom Tag "" Klassennamen, wenn Sie keine Pakete verwenden.

0
Harish

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:

  1. Projekt mit Git importieren.
  2. Nachdem Sie IDE importiert haben, werden Sie in der rechten unteren Ecke aufgefordert, "Import as Gradle" (Importiere als Gradle) zu wählen. Sie müssen dies jedoch auswählen. Stellen Sie jedoch sicher, dass Sie Java_HOME und GRADLE (Gradle Home oder Gradle Wrapper) ordnungsgemäß funktionieren.
  3. Führen Sie das build.gradle aus und stellen Sie sicher, dass alle Abhängigkeiten korrekt und fehlerfrei heruntergeladen werden.
  4. Gehen Sie jetzt zu Ihrem Testfall und versuchen Sie, TestNG oder JUnit auszuführen. Wenn Sie die obigen 3 Schritte ordnungsgemäß ausgeführt haben, sollten Sie den Testfall ausführen können.
0
Pratik Patel

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. 

0
Sneh Tripathi

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

0
NateW

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.

0
Steven

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.

0
SanjX

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)

  1. Schritt 1: Erstellungspfad> Erstellungspfad konfigurieren> Java-Erstellungspfad> Wählen Sie Registerkarte "Projekt" aus
  2. Schritt 2: Klicken Sie auf die Schaltfläche "Hinzufügen" und wählen Sie das Projekt aus, das die TestNG-Quelle enthält.
  3. Schritt 3: Wählen Sie TestNG.xml als "TestNG Suite" aus.

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.

0
Chinmoy

Lassen Sie mich mitteilen, was bei mir funktioniert hat:

  1. 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

  2. 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.

  3. 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

0
Mike ASP

Nachdem Sie alles, was ich zu diesem Thema gefunden hatte, in Eclipse ausprobiert hatte, 

Ich habe mein Projekt ausgewählt -> Rechtsklick -> Ausführen als -> Maven-Generierungsquellen

 enter image description here

Dann habe ich mein TestNG-Projekt erneut ausgeführt und es lief einwandfrei ohne Probleme. Hoffentlich hilft das :)

0

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.

0
Sapna

In meinem Fall habe ich maven project als Standardprojekt in Eclipse importiert. Danach habe ich als maven project importiert. Das hat bei mir funktioniert.

0
Dinesh Chitta

Stellen Sie sicher, dass Ihre Klasse unter src steht.

0
Saurabh Shukla

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. 

0
Jitendra kumar

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>
0
Key

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

0
user7294900

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!

0
Cláudio

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.

0
bnieland