Вопрос:

Неожиданно не удается запустить тесты TestNG из муравья ([testng] Причина: java.lang.ClassNotFoundException: com.beust.jcommander.ParameterException)

ant testng

17749 просмотра

7 ответа

163 Репутация автора

Я использую ant и TestNG 6.1.1, и мои тесты вчера работали очень хорошо. Сегодня, когда я пытаюсь запустить тесты, я получаю NoClassDefFoundError с участием com / beust / jcommander / ParamException. Вот вывод:

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

Я также указал полный путь для класса без удачи. Я проверил путь к классу, и все, кажется, хорошо, у кого-нибудь есть какие-либо идеи по этому поводу?

Автор: anotherdjohnson Источник Размещён: 17.08.2011 11:43

Ответы (7)


8 плюса

13995 Репутация автора

Решение

Если вы используете ant, JCommander должен находиться внутри testng.jar, поэтому я думаю, что ваш файл testng.jar может быть поврежден.

Автор: Cedric Beust Размещён: 18.08.2011 12:30

0 плюса

69 Репутация автора

Может быть testng.jar не в classpath.

Автор: Victor Размещён: 16.07.2012 01:49

4 плюса

168 Репутация автора

Если вы используете Maven, попробуйте добавить это в ваш pom.xml

<dependency>
  <groupId>com.beust</groupId>
  <artifactId>jcommander</artifactId>
  <version>1.30</version>
</dependency>
Автор: user1807948 Размещён: 19.11.2012 08:14

3 плюса

27952 Репутация автора

jcommander.jar (например, jcommander-1.29.jar) должен присутствовать в каталоге наборов файлов, который упоминается в build.xml

Вы можете скачать его с: http://mvnrepository.com/artifact/com.beust/jcommander/1.27

ИЛИ ЖЕ,

JCommander должен находиться внутри testng.jar во время использования муравья. Возможно, ваш файл testng.jar поврежден, поэтому замените старый файл testng.jar новым.

Автор: Ripon Al Wasim Размещён: 25.02.2014 10:00

0 плюса

1 Репутация автора

У меня была такая же проблема с не-Maven проектом. Я получил jar testng из Maven Central, но он не содержал всех зависимостей TestNG. Загрузка jar-файла непосредственно с сайта TestNG решила проблему, поскольку она содержит зависимости.

Я должен был уделить больше внимания указаниям на странице загрузки TestNG ...

Последнюю версию TestNG можно скачать с Maven Central или здесь для пользователей ant .

Автор: Dave H Размещён: 18.11.2014 04:44

0 плюса

1 Репутация автора

Мой муравей начинает работать, когда я скачал jcommandar jar из репозитория Maven и добавил его в свой файл jar

Но эта проблема начинается с версии testng 6.8.5

Автор: Abode QA Размещён: 03.06.2015 07:39

0 плюса

26 Репутация автора

Проблема здесь заключается в том, что некоторые версии jar testNG не содержат внутри себя jar-код jcommander. В результате вы должны добавить classpath к банке Jcommander отдельно.

Добавление jarmander jar к вашему classpath при запуске исправит проблему, надеюсь

Автор: xtao Размещён: 04.06.2015 10:40
Вопросы из категории :
32x32