突然不能从蚂蚁运行TestNG的测试([TestNG的]引起的:抛出java.lang.ClassN

2019-05-12 04:52发布

我使用蚂蚁和TestNG 6.1.1,和我昨天就好了我的测试工作。 今天,当我尝试运行我得到包括COM /博伊斯特/ 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>

我还指定没有运气类的完整路径。 我检查类路径,一切似乎很好,没有人对此有什么想法?

Answer 1:

如果您使用的蚂蚁,JCommander应该是里面testng.jar,所以我想你testng.jar文件可能已损坏。



Answer 2:

如果你使用Maven尝试添加这对你的pom.xml

<dependency>
  <groupId>com.beust</groupId>
  <artifactId>jcommander</artifactId>
  <version>1.30</version>
</dependency>


Answer 3:

jcommander.jar(例如jcommander-1.29.jar)应存在在其上在所提及的build.xml文件集目录

:你可以从这里下载http://mvnrepository.com/artifact/com.beust/jcommander/1.27

要么,

JCommander应该是内部testng.jar使用Ant中。 你testng.jar文件可能已损坏,所以请更换新老testng.jar。



Answer 4:

可能testng.jar是不是在类路径中。



Answer 5:

我有同样的问题与非Maven项目。 我从中检索Maven的中央TestNG的罐子,但它并没有包含所有TestNG的依赖。 直接从TestNG的网站下载JAR解决了这个问题,因为它包含的依赖关系。

我应该更加重视对方向TestNG的下载页面 ...

TestNG的最新版本可以从Maven的中央这里的蚂蚁用户下载。



Answer 6:

这里的问题是,TestNG的罐子的某些版本没有他们的内部jcommander罐子代码。 其结果是,你必须到classpath中单独添加到Jcommander罐子。

添加Jcommander罐子到类路径,当你运行它会解决这个问题,希望



Answer 7:

当我已经下载jcommandar罐子从Maven仓库,在我的jar文件添加它我的蚂蚁开工

但这个问题开始使用TestNG 6.8.5版本即将



文章来源: Suddenly can't run TestNG tests from ant ([testng] Caused by: java.lang.ClassNotFoundException: com.beust.jcommander.ParameterException)
标签: ant testng