Soudain, ne peut pas exécuter TestNG tests de fourmi ([testng] Causée par: java.lang.ClassNotFoundException: com.beust.jcommander.ParameterException)
Je suis en utilisant ant et TestNG 6.1.1, et j'ai eu mes tests fonctionne très bien hier. Aujourd'hui, lorsque j'essaie d'exécuter les tests, je reçois un NoClassDefFoundError impliquant com/beust/jcommander/ParamException. Voici le résultat:
[copy] Copying 1 file to /Users/djohnson/src/webapp/components/build/tmp
[testng] Exception in thread "main" java.lang.NoClassDefFoundError: com/beust/jcommander/ParameterException
[testng] Caused by: java.lang.ClassNotFoundException: com.beust.jcommander.ParameterException
[testng] at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
[testng] at java.security.AccessController.doPrivileged(Native Method)
[testng] at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
[testng] at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
[testng] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
[testng] at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
[testng] The tests failed.
Ici est la .fichier xml que j'utilise:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Single Method Suite">
<test name="Single Method Test">
<classes>
<class name="DhcpTest">
<methods>
<exclude name=".*" />
<include name="setGetEnabledTest" />
</methods>
</class>
</classes>
</test>
</suite>
J'ai aussi spécifié le chemin d'accès complet de la classe avec pas de chance. J'ai vérifié le chemin de la classe et tout semble bien fonctionner, quelqu'un a une idée sur ce point?
Ok, donc j'ai ajouté jcommander-1.17.jar dans le chemin, et je reçois toujours le même message d'erreur.
Maintenant que j'ai posté ceci pour tout le monde à voir, j'ai découvert que jcommander n'était pas réellement dans le classpath. J'étais sûr que j'ai vu il y a, mais bien sûr, c'était manquant. Maintenant il ne trouve pas le test, je ne sais pas pourquoi, parce que j'ai triple vérifié le chemin de la classe, et c'est certainement là.
Maintenant que j'ai posté ceci pour tout le monde à voir, j'ai découvert que jcommander n'était pas réellement dans le classpath. J'étais sûr que j'ai vu il y a, mais bien sûr, c'était manquant. Maintenant il ne trouve pas le test, je ne sais pas pourquoi, parce que j'ai triple vérifié le chemin de la classe, et c'est certainement là.
OriginalL'auteur anotherdjohnson | 2011-08-17
Vous devez vous connecter pour publier un commentaire.
Si vous êtes en utilisant ant, JCommander doit être à l'intérieur testng.jar, donc je suis en train de penser à votre testng.jar le fichier peut être endommagé.
Heureux de l'entendre. Pour info,
rm -rf ~/.ivy2/org.testng
devrait prendre soin du problème.Cédric, il s'avère que le fichier que j'utilise est le même fichier qui est dans le Maven 2 référentiel, afin de l'enlever de mon lierre cache ne l'aide pas. Est-il un problème avec le fichier dans le cache, ou est-il quelque chose d'autre se passe ici?
J'ai aussi été confronté à ce problème. Selon Cédric Beust conseils, j'ai remplacé le vieux testng.jar avec une nouvelle. Et il fonctionne bien.
OriginalL'auteur Cedric Beust
Si votre utilisation de Maven, essayez d'ajouter ceci à votre pom.xml
OriginalL'auteur user1807948
jcommander.jar (par ex. jcommander-1.29.jar) doit être présent sur fileset répertoire qui est mentionné au build.xml
Vous pouvez le télécharger à partir de: http://mvnrepository.com/artifact/com.beust/jcommander/1.27
OU,
JCommander doit être à l'intérieur testng.jar pendant l'utilisation de ant. Votre testng.jar le fichier peut être endommagé, de sorte s'il vous plaît remplacer le vieux testng.jar par une nouvelle.
OriginalL'auteur Ripon Al Wasim
Peut être testng.jar n'est pas dans le classpath.
OriginalL'auteur Victor
J'ai eu ce même problème avec un non-projet Maven. J'ai récupéré le testng pot de Maven Central, mais il ne contient pas toutes de TestNG ses dépendances. Télécharger le jar directement à partir de la TestNG site a résolu le problème, car il contient les dépendances.
Je devrais avoir payé plus d'attention à l'itinéraire sur TestNG la page de téléchargement...
OriginalL'auteur Dave H
Le problème ici est que certaines versions de la testNG jar n'ont pas le jcommander pot de code à l'intérieur d'eux. Comme un résultat, vous devez ajouter le chemin de classe pour la Jcommander pot séparément.
L'ajout de la Jcommander jar au classpath lorsque vous exécutez il va corriger le problème, nous l'espérons
OriginalL'auteur xtao
Mon ant commencer à travailler quand j'ai téléchargé jcommandar pot de
Repository Maven et de l'ajouter dans mon fichier jar
Mais Ce problème
Commence à venir avec testng 6.8.5 version
OriginalL'auteur Abode QA