我正在使用ant和TestNG 6.1.1,昨天我的测试工作得很好。今天当我尝试运行测试时,我得到一个涉及com / beust / jcommander / ParamException的NoClassDefFoundError。这是输出:
[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.
这是我正在使用的.xml文件:
<!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>
我还指定了班级的完整路径而没有运气。我检查了类路径,一切似乎都很好,有没有人对此有任何想法?
答案 0 :(得分:8)
如果你正在使用ant,JCommander应该在testng.jar中,所以我认为你的testng.jar文件可能已损坏。
答案 1 :(得分:4)
如果您使用Maven尝试将其添加到您的pom.xml
<dependency>
<groupId>com.beust</groupId>
<artifactId>jcommander</artifactId>
<version>1.30</version>
</dependency>
答案 2 :(得分:3)
jcommander.jar(例如jcommander-1.29.jar)应该出现在build.xml上提到的文件集目录中
您可以从以下网址下载:http://mvnrepository.com/artifact/com.beust/jcommander/1.27
OR,
在使用蚂蚁时,JCommander应该在testng.jar里面。您的testng.jar文件可能已损坏,因此请用新的替换旧的testng.jar。
答案 3 :(得分:0)
可能是testng.jar不在classpath中。
答案 4 :(得分:0)
我在非Maven项目中遇到了同样的问题。我从Maven Central检索了testng jar,但它并没有包含所有TestNG的依赖项。直接从TestNG站点下载jar解决了该问题,因为它包含依赖项。
我应该更加关注TestNG's download page ...
上的指示最新版本的TestNG可以从 Maven Central 下载,可以从这里下载给蚂蚁用户。
答案 5 :(得分:0)
当我从中下载jcommandar jar时,我的蚂蚁开始工作 Maven存储库并将其添加到我的jar文件中
但是这个问题 开始使用testng 6.8.5版本
答案 6 :(得分:0)
这里的问题是某些版本的testNG jar里面没有jcommander jar代码。因此,您必须单独将类路径添加到Jcommander jar。
运行时将Jcommander jar添加到类路径将解决问题,希望