web-dev-qa-db-fra.com

TestNG ERROR Impossible de trouver la classe dans classpath

J'essaye de lancer testng via la ligne de commande et j'ai les choses suivantes dans classpath:

  • testng jar, jar du fichier de test élémentaire compilé et autres jar requis.
  • testng.xml pointe vers la classe appropriée dans la hiérarchie. 

Testng ne s'exécute pas à la place, il lance:

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

J'ai rencontré le même problème avant et je viens d'ajouter.

Dans classpath et cela a résolu le problème. Mais cette fois, cela n'a pas semblé le résoudre. Des solutions de contournement? Merci d'avance.

22
paragm

Je viens d'avoir ce problème et je suis assez confiant que c'est un bogue dans le plugin TestNG pour Eclipse, car j'ai pu exécuter mes tests à partir de la ligne de commande. 

La solution qui semble fonctionner pour moi et les autres consiste simplement à nettoyer votre projet (ProjectClean). Une personne a dû réinstaller tout le plugin.

34
Baer

Si votre nom de package est FabFurnishPackage et que le nom de votre classe est registration, le code en xml doit être

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

[TestNG] [ERROR] Impossible de trouver la classe dans classpath: registration le problème est résolu ...

16
Hema

Il suffit de faire Eclipse> Projet> Nettoyer, puis réexécutez les cas de test. Ça devrait marcher.

En arrière-plan, il appelle mvn Eclipse: clean dans le répertoire de votre projet, ce qui supprime vos fichiers .project et .classpath et vous pouvez également effectuer un mvn Eclipse: eclipse - régénère vos fichiers .project et .classpath. Ajoutant ainsi la classe souhaitée dans le classpath.

8
pseudoCoder

Je faisais face au même problème et j'ai essayé comme ci-dessous.

  1. Nettoyer le projet (clic droit sur pom.xml et nettoyer)
  2. Et mettez à jour le projet Maven (Projet> Maven> Mettre à jour le projet Maven)

Cela a résolu le problème.

6
Shri_Automation

Avant d'exécuter la commande pour le fichier testng.xml à partir de l'invite de commande, veuillez vérifier les éléments suivants si vous les manquez.

  1. Dans la commande Invite, assurez-vous de naviguer dans le dossier dans lequel vous avez placé le fichier testng.xml.
  2. après avoir accédé à cela, set CLASSPATH et inclus l'emplacement du fichier jar de test, l'emplacement du fichier jar du serveur Selenium (si vous utilisez Selenium Webdriver), l'emplacement du dossier bin de votre projet contenant tous les fichiers .class de votre projet.
    Par exemple, set CLASSPATH=C:\Selenium\testng-5.8-jdk15.jar;C:\Selenium\selenium-server-standalone-2.31.0.jar;C:\SeleniumTests\YourProject\bin
  3. Maintenant, lancez la commande Java org.testng.TestNG testng.xml.

J'étais dans la même situation mais les choses ci-dessus ont fonctionné pour moi.

4
priti

ajouter à pom:

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

assurez-vous que votre suite.xml ne doit pas avoir l'extension .Java

ex:

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

Si aucune des réponses ci-dessus ne fonctionne, vous pouvez exécuter le test dans l'EDI, obtenir le chemin d'accès aux classes et l'utiliser dans votre commande. Ex: Si vous utilisez Intellij IDEA, vous pouvez le trouver en haut de la console (capture d'écran ci-dessous). Intellij Console

Un clic sur la pièce en surbrillance développe et affiche le chemin d'accès complet à la classe.

vous devez supprimer les références aux fichiers JAR du dossier: JetBrains\IntelliJ IDEA Community Edition VERSION

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

Si le projet est un projet Maven, vous pouvez ajouter le plug-in maven surefire et indiquer le chemin d'accès au fichier XML de la suite de tests, accéder au répertoire du projet et exécuter la commande suivante: 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

Assurez-vous que vous avez spécifié votre classe/package dans le fichier TestNG.xml.

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

1
Pratik Patel

J'ai dû créer un fichier JAR à partir de mes classes de test et l'ajouter à mon chemin de classe. Auparavant, j'avais ajouté mon fichier de classe de test au chemin de classe, puis j'avais l'erreur ci-dessus. J'ai donc créé un pot et ajouté à classpath.

par exemple

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

Après avoir modifié le chemin de sortie de TestNG (Propriétés du projet -> TestNG -> Répertoire de sortie), cela a fonctionné pour moi.

0
Prashant

Eclipse-> clic droit surprojet->chemin de construction->configurer->Chemin de construction Java.

Ajouter une bibliothèque->JRE lib.

Ajoutez la dernière bibliothèque Java que vous utilisez dans le système, supprimez d’autres anciennes bibliothèques JRE et enregistrez-la.

0
Ashutosh Dobhal

Si votre projet est ouvert dans Eclipse (Mars) IDE: Faites un clic droit sur le projet dans Eclipse Cliquez sur TestNG Cliquez sur "Convertir en TestNG"

Cela crée un nouveau fichier testng.xml et vous invite à écraser le fichier existant (!!! Attention, ceci effacera votre ancien fichier testng.xml !!!) . Cliquez sur Oui.

Exécuter en tant que build de test Maven.

0
Uma Senthil

Dans mon cas, la structure du paquet n'était pas correcte, c'était comme des dossiers et des sous-dossiers. J'ai supprimé ce projet et importé à nouveau en changeant le code correspondant. Après que cela a fonctionné pour moi ... par exemple. Structure des dossiers - TestProject -TestSuite1 Structure du package - TestProject.TestSuite1

0
Sunita Yadav

Était confronté à un problème similaire en utilisant IntelliJ et au cas où cela pourrait être utile à quelqu'un d'autre, ce qui l'a résolu pour moi était de changer le champ Use classpath of module , de l'avoir comme celui qui montre le nom du paquet.

enter image description here

0

clic droit sur projet -> aller à maven -> projet de mise à jour

cela a résolu mon problème quand rien d'autre ne pouvait

0
Sachin Singh

J'ai rencontré le même problème lorsque j'ai essayé d'exécuter mon fichier Testng.xml.

Pour résoudre ce problème, vous devez déplacer votre fichier de classe de pkg par défaut vers un autre pkg; c'est-à-dire créer un nouveau paquet et y placer votre fichier de classe

0
Steve

J'ai rencontré le même problème. À chaque fois que je passais mon test, il continuait à dire des classes introuvables dans le classpath. J'ai essayé de réparer le fichier testng.xml, de nettoyer le projet et à peu près tout ce que les réponses disent ici, mais aucun n'a fonctionné. Enfin, j'ai vérifié mes bibliothèques référencées dans le chemin de génération et il y avait 34 bibliothèques invalides. Il s'avère que j'ai renommé l'un des dossiers du chemin où j'ai pris les fichiers jar. J'ai corrigé le chemin et le test s'est déroulé avec succès.

Il pourrait donc être utile de vérifier s'il existe des erreurs dans les fichiers JAR référencés avant d'essayer les autres méthodes permettant de résoudre ce problème.

0
Qaddaffi

J'ai eu le même problème en utilisant maven

La solution qui a fonctionné est la suivante: le nom de la classe dans le fichier testNG était différent de celui de la classe Nom

Depuis que j'ai changé le nom de la classe et testng le fichier n'a pas été mis à jour.

Assurez-vous donc que className dans le fichier testNG doit correspondre au className actuel.

RestAssuredTest a été écrit à tort comme RestAssuredest dans testNG

Une des raisons de ce problème 

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

Pour éviter l'erreur

Impossible de trouver la classe dans classpath: (nom du fichier testcase)

vous devez regrouper la classe Runner et la classe Test. Je veux dire src et les dossiers de test.

0
Seploid

Vérifiez la hiérarchie des classes. Si le paquet manque dans votre classe, vous obtiendrez cette erreur. Essayez donc de créer une nouvelle classe de test en sélectionnant le package.

0
Mano

je faisais face au même problème, vous devez vérifier le fichier testng, votre classe créée sous package dans cette classe de cas ne se trouve pas dans Test NG. Effectuez les étapes ci-dessous en convertissant simplement votre projet en test NG et en écrivant/remplaçant avec le nouveau fichier testNG. 

Encore une fois, lancez ce TestNG dans ce cas, il travaille mon cas,

0
nilesh

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

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

нажмитеEnter

Java org.testng.TestNG testng.xml   

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

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

0
Rahul

J'obtenais la même erreur - Impossible de trouver la classe dans classpath:

Solution: j'avais commis les erreurs suivantes:

  1. Ma classe n'était sous aucun paquet. J'ai donc créé un paquet puis créé ma classe sous ce paquet.
  2. Je n'avais pas mentionné le chemin complet dans le fichier XML. ex. . Alors je l'ai aussi corrigé.
  3. Ensuite, je fais un clic droit sur le fichier XML et lance le programme TestNG exécuté avec succès.
0
Abhineet Mishra

Je viens d'avoir ce problème et c'est parce que l'option de test de saut dans la configuration d'exécution a été cochée. fait que décoché et construire, puis exécutez le testNg, a travaillé.

0
Jobin Mathew

Ce problème est dû à une erreur de construction . 1. Nettoyer le projet - si le problème n'est pas résolu 2. update maven project - Si toujours pas résolu 3. Accédez au chemin de construction à partir de (cliquez avec le bouton droit sur projet-> Propriétés -> chemin de construction Java) Si vous voyez une erreur, résolvez-la en ajoutant le fichier manquant à un emplacement donné. 

Je suis confronté au même problème. Après de nombreuses démarches, j'ai trouvé la troisième solution pour résoudre ce problème.

0
Neeraj Agarwal

J'ai essayé toutes les suggestions ci-dessus, et cela n'a pas fonctionné pour mon cas. Il se trouve que le chemin de génération de mon projet comporte une erreur (l'un des fichiers jar dépendant est introuvable). Après avoir corrigé cette erreur, testng fonctionne à nouveau dans mon Eclipse.

0
sofian

Lorsque j'ai converti mon projet avec pacage par défaut et une classe nommée add, .__ en testng.xml .. Il a été converti en tant que:

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

et jetait une erreur cette classe ne peut pas être chargée . Si je supprime. avant l’ajout, le code fonctionne bien . Soyez donc prudent avec le paquet par défaut.

0