突然无法从ant运行TestNG测试([testng]引起:java.lang.ClassNotFoundException:com.beust.jcommander.ParameterException)

时间:2011-08-17 23:43:34

标签: ant testng

我正在使用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>

我还指定了班级的完整路径而没有运气。我检查了类路径,一切似乎都很好,有没有人对此有任何想法?

7 个答案:

答案 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添加到类路径将解决问题,希望