web-dev-qa-db-de.com

TestNG ERROR Klasse kann im Klassenpfad nicht gefunden werden

Ich versuche, testng über die Kommandozeile auszuführen und habe folgende Eigenschaften im Klassenpfad:

  • testng jar, jar kompilierte Testfalldatei und andere erforderliche jars.
  • testng.xml zeigt auf die entsprechende Klasse in der Hierarchie. 

Testng läuft nicht stattdessen wirft es:

[TestNG] [ERROR]  Cannot find class in classpath: (name of testcase file)

Ich bin schon früher auf das gleiche Problem gestoßen und habe es nur hinzugefügt.

In classpath und hat das Problem gelöst. Aber diesmal schien es das Problem nicht zu lösen. Irgendwelche Problemumgehungen? Danke im Voraus.

22
paragm

Ich hatte gerade dieses Problem und bin ziemlich zuversichtlich, dass dies ein Fehler im TestNG-Plugin für Eclipse ist, da ich meine Tests von der Kommandozeile aus gut ausführen konnte. 

Die Lösung, die für mich und andere zu funktionieren scheint, ist lediglich die Bereinigung Ihres Projekts (ProjectClean). Eine Person musste das gesamte Plugin erneut installieren.

34
Baer

Wenn Ihr Paketname FabFurnishPackage ist und Ihr Klassenname Registrierung ist, sollte der Code in XML angezeigt werden

<classes>
<class name="FabFurnishPackage.registration">
</classes>

[TestNG] [ERROR] Klasse kann im Klassenpfad nicht gefunden werden: Registrierung Problem ist behoben ...

16
Hema

Führen Sie einfach Eclipse> Project> Clean aus und führen Sie die Testfälle erneut aus. Es sollte funktionieren.

Was es im Hintergrund tut, ist, dass es mvn Eclipse: clean in Ihrem Projektverzeichnis aufruft, wodurch Ihre .project- und .classpath-Dateien gelöscht werden, und Sie können auch eine mvn-Eclipse: eclipse -Datei ausführen. So fügen Sie die gewünschte Klasse im Klassenpfad hinzu.

8
pseudoCoder

Ich war mit dem gleichen Problem konfrontiert und was ich versucht habe, ist wie folgt.

  1. Reinigen Sie das Projekt (Rechtsklick auf pom.xml und Reinigen)
  2. Und aktualisieren Sie das Maven-Projekt (Projekt> Maven> Maven-Projekt aktualisieren)

Dies hat das Problem gelöst.

6
Shri_Automation

Bevor Sie den Befehl für die Datei testng.xml über die Eingabeaufforderung ausführen, überprüfen Sie bitte Folgendes, wenn Sie sie fehlen

  1. Stellen Sie in der Eingabeaufforderung sicher, dass Sie zu dem Ordner navigieren, in dem Sie die Datei testng.xml abgelegt haben.
  2. nach dem Navigieren zu set CLASSPATH und dem Speicherort der Testng-JAR-Datei, der JAR-Dateiposition des Selenium-Servers (falls Sie mit dem Selenium-Web-Treiber arbeiten), dem Speicherort des Ordners in Ihrem Projekt, der alle .class-Dateien Ihres Projekts enthält.
    B. set CLASSPATH=C:\Selenium\testng-5.8-jdk15.jar;C:\Selenium\selenium-server-standalone-2.31.0.jar;C:\SeleniumTests\YourProject\bin
  3. Führen Sie nun den Befehl Java org.testng.TestNG testng.xml. aus.

Ich befand mich in derselben Situation, aber die oben genannten Dinge funktionierten für mich.

4
priti

zu pom hinzufügen:

        <build>
            <sourceDirectory>${basedir}/src</sourceDirectory>
            <testSourceDirectory>${basedir}/test</testSourceDirectory>
             (...)
            <plugins>
                (...)
            </plugins>
        </build>
3

stellen Sie sicher, dass Ihre Suite.xml keine .Java-Erweiterung haben sollte

ex :

<test name="Test C1">
    <classes>
        <class name="com.taxi.suiteC.TestCase_C1" ></class>  
    </classes>
</test>
2
Anand Palabhavi

Wenn keine der obigen Antworten funktioniert, können Sie den Test in IDE ausführen, den Klassenpfad abrufen und ihn in Ihrem Befehl verwenden. Beispiel: Wenn Sie Intellij IDEA verwenden, finden Sie es oben in der Konsole (Abbildung unten). Intellij Console

Durch Klicken auf den hervorgehobenen Teil wird der gesamte Klassenpfad erweitert und angezeigt.

sie müssen die Verweise auf Gläser im Ordner entfernen: JetBrains\IntelliJ IDEA Community Edition VERSION

Java -cp "path_copied" org.testng.TestNG testng.xml

Wenn es sich bei dem Projekt um ein Maven-Projekt handelt, können Sie das Maven-todsichere Plug-in hinzufügen und den XML-Dateipfad der Testsuite bereitstellen. Navigieren Sie zum Projektverzeichnis und führen Sie den folgenden Befehl aus: mvn clean install test

            <plugin>
                <groupId>org.Apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.12</version>
                <configuration>
                    <suiteXmlFiles>
                        <suiteXmlFile>config/testrun_config.xml</suiteXmlFile>
                    </suiteXmlFiles>
                </configuration>
            </plugin>
1
Tilak

Stellen Sie sicher, dass Sie Ihre Klasse/Ihr Paket in der TestNG.xml-Datei angegeben haben.

<test name="test1" preserve-order="false">
    <classes>
        <class name="ABC"/>
    </classes>
</test>

1
Pratik Patel

Ich musste aus meinen Testklassen eine JAR-Datei erstellen und sie meinem Klassenpfad hinzufügen. Zuvor habe ich meine Testklassendatei zum Klassenpfad hinzugefügt, und dann wurde ein Fehler angezeigt. Also habe ich ein Glas erstellt und Classpath hinzugefügt.

z.B

Java -cp "my_jars/*" org.testng.TestNG testing.xml
0
Ishan Liyanage

Nach dem Ändern des TestNG-Ausgabepfads (Projekteigenschaften -> TestNG -> Ausgabeverzeichnis) funktionierte er für mich.

0
Prashant

Eclipse-> Klicken Sie mit der rechten Maustaste aufProject->Build-Pfad->Configure->Java-Erstellungspfad.

Bibliothek hinzufügen->JRE lib.

Fügen Sie die neueste Java-Bibliothek hinzu, die Sie im System verwenden, und entfernen Sie andere alte JRE-Bibliotheken, und speichern Sie sie.

0
Ashutosh Dobhal

Wenn Sie Ihr Projekt in Eclipse (Mars) IDE geöffnet haben: .__ Klicken Sie mit der rechten Maustaste auf das Projekt in EclipseKlicken Sie auf TestNGKlicken Sie auf "In TestNG konvertieren".

Dadurch wird eine neue Datei testng.xml erstellt und Sie werden aufgefordert, die vorhandene Datei zu überschreiben (!!! Achtung, dies löscht Ihre vorherige testng.xml !!!) . Klicken Sie auf Ja.

Führen Sie als Maven-Testbuild aus.

0
Uma Senthil

In meinem Fall war die Paketstruktur nicht richtig, es war wie Ordner und Unterordner. Ich habe dieses Projekt gelöscht und erneut importiert, wobei die entsprechende JRE geändert wurde. Danach hat es für mich funktioniert. Ordnerstruktur - TestProject -TestSuite1 Paketstruktur - TestProject.TestSuite1

0
Sunita Yadav

Bei der Verwendung von IntelliJ ist ein ähnliches Problem aufgetreten. Falls es für einen anderen Benutzer hilfreich sein sollte, habe ich das Feld Use classpath of module geändert , um es als das zu haben, das den Paketnamen zeigt.

enter image description here

0

rechtsklick auf Projekt -> Gehe zu Maven -> Projekt aktualisieren

das Problem wurde behoben, wenn nichts anderes möglich war

0
Sachin Singh

Ich hatte ein ähnliches Problem, als ich versuchte, meine Testng.xml-Datei auszuführen.

Um dies zu beheben, sollten Sie Ihre Klassendatei von einem Standard-Paket auf ein anderes Paket verschieben. Erstellen Sie also ein neues Paket und legen Sie Ihre Klassendatei dort ab

0
Steve

Ich bin auf die gleiche Ausgabe gestoßen. Wann immer ich meinen Test durchführte, sagte er ständig Klassen, die nicht im Klassenpfad enthalten waren. Ich habe versucht, die Datei testng.xml zu reparieren, das Projekt aufzuräumen und so ziemlich alles, was die Antworten hier sagen, aber es funktionierte nicht. Schließlich überprüfte ich meine referenzierten Bibliotheken im Erstellungspfad und es gab 34 ungültige Bibliotheken. Es stellte sich heraus, dass ich einen der Ordner von dem Pfad umbenannt hatte, aus dem ich die Jar-Dateien genommen hatte. Ich habe den Pfad repariert und der Test lief erfolgreich.

Es kann daher sinnvoll sein, zu prüfen, ob in den referenzierten JAR-Dateien Fehler vorhanden sind, bevor Sie die anderen Methoden zur Behebung dieses Problems versuchen.

0
Qaddaffi

Ich habe das gleiche Problem bei der Verwendung von maven

Die Lösung, die funktioniert hat, ist: der Name der Klasse in der testNG-Datei war anders als der tatsächliche Name der Klasse

Da ich den Klassennamen geändert habe, wurde die Datei testng nicht aktualisiert.

Stellen Sie daher sicher, dass className in der testNG-Datei mit dem tatsächlichen className übereinstimmt

RestAssuredTest wurde in testNG als RestAssuredest falsch geschrieben

Einer der Gründe für dieses Problem 

<?xml version="1.0" encoding="UTF-8"?>

 <suite name="Suite">
   <test name="Test">
<classes>
  <class name="com.mycompany.app.AppTest"/>
  <class name="com.mycompany.app.RestAssuredTest"/>
 <class name="com.mycompany.app.appiumTests"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
0
Gaurav khurana

Um den Fehler zu vermeiden

Klasse kann nicht im Klassenpfad gefunden werden: (Name der Testfalldatei)

sie müssen die Runner-Klasse und die Test-Klasse an einem Ort halten. Ich meine src und Testordner.

0
Seploid

Überprüfen Sie die Klassenhierarchie. Wenn das Paket in Ihrer Klasse fehlt, erhalten Sie diese Fehlermeldung. Versuchen Sie also, eine neue Testklasse zu erstellen, indem Sie das Paket auswählen.

0
Mano

ich war mit dem gleichen Problem konfrontiert, dass Sie die testng-Datei überprüfen müssen. Ihre in diesem Fall unter Paket erstellte Klasse wird durch Test NG nicht gefunden. Führen Sie die folgenden Schritte aus, konvertieren Sie Ihr Projekt einfach in Test NG und überschreiben Sie es mit einer neuen testNG-Datei. 

Führen Sie diesen TestNG erneut aus. In diesem Fall wird mein Fall bearbeitet.

0
nilesh

Я также столкнулся с той же проблемой. Я попытался установить путь к классу по-другому, и это работает для меня:

set classpath="projectpath"\bin;"projectpath"\lib\*     

нажмитеEnter

Java org.testng.TestNG testng.xml   

нажмитеEnterснова

Я надеюсь, что это работает!

0
Rahul

Ich habe die gleiche Fehlermeldung erhalten - Klasse kann nicht in Klassenpfad gefunden werden:

Lösung: Ich hatte folgende Fehler begangen:

  1. Mein Unterricht stand nicht unter einem Paket. Also habe ich ein Paket erstellt und dann meine Klasse unter diesem Paket erstellt.
  2. Ich hatte den vollständigen Pfad in der XML-Datei nicht erwähnt. Ex. . Also habe ich es auch korrigiert.
  3. Dann klicke ich mit der rechten Maustaste auf die XML-Datei und starte als TestNG mein Programm erfolgreich.
0
Abhineet Mishra

Ich hatte gerade dieses Problem und war, weil die Option zum Überspringen des Tests in der Laufkonfiguration geprüft wurde. machte das ungeprüft und build, führte dann testNg aus, funktionierte.

0
Jobin Mathew

Dieses Problem tritt aufgrund eines Buildfehlers auf. 1. Projekt reinigen - wenn das Problem nicht behoben wird 2. Update-Maven-Projekt - Wenn noch nicht behoben. 3. Gehen Sie zum Buildpfad von (Rechtsklick auf Projekt-> Eigenschaften -> Java-Buildpfad) Überprüfen Sie nun die Bibliotheksdateien. Wenn Sie einen Fehler sehen, beheben Sie ihn, indem Sie am angegebenen Ort eine fehlende Datei hinzufügen. 

Ich habe das gleiche Problem, nach vielen Ansätzen fand ich die dritte Lösung, um dieses Problem zu beheben

0
Neeraj Agarwal

Wenn Sie Ihre testNG-Klasse umbenannt haben und die XML-Datei der Testsuite nicht umbenannt wurde, wird dieser Fehler angezeigt. Ich habe auch in der XML-Datei korrigiert und es hat bei mir funktioniert.

0
ANIL KUMAR

Ich habe alle oben genannten Vorschläge ausprobiert und es hat für meinen Fall nicht funktioniert. Es stellt sich heraus, dass mein Projekterstellungspfad einen Fehler aufweist (einer der abhängigen JAR-Dateien kann nicht gefunden werden). Nachdem der Fehler behoben wurde, funktioniert testng wieder in meinem Eclipse.

0
sofian

Wenn ich mein Projekt mit dem Standardpaket pacage und einer Klasse namens add In testng.xml .

<classes>
      <class name=".addition"/>
</classes>

und warf einen Fehler, dass diese Klasse nicht geladen werden kann .. Wenn ich entferne. Vor dem Hinzufügen funktioniert der Code einwandfrei . Seien Sie also vorsichtig mit dem Standardpaket.

0