Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Не получается запустить тесты с помощью Ant


(Diana) #1

Создала проект на Java в Eclipse. Вынесла в корень проекта файл package.xml и создала build.xml (Проект -> Export -> Ant Buildfiles)
Исправила build.xml, добавив туда следующие строки

<taskdef resource="testngtasks" classpath="C:/Tools/selenium-2.40.0/libs/testng-6.8.5.jar"></taskdef>

<target name="run" depends="build">

         <testng>
<classpath refid="dice.classpath"></classpath>
<xmlfileset dir="." includes="package.xml"/>
       	</testng>
  </target>

Правой кнопкой на файле build.xml в Eclipse пишет

Buildfile: C:\Users\diana\workspace\dice\build.xml
build-subprojects:
init:
build-project:
     [echo] dice: C:\Users\diana\workspace\dice\build.xml
build:
BUILD SUCCESSFUL
Total time: 535 milliseconds

При запуске из командной строки ant run, пишет

BUILD FAILED
C:\Users\diana\.jenkins\workspace\Dice Ant\build.xml:82: No suites, classes, methods or jar file was specified.

Total time: 0 seconds
Build step 'Invoke Ant' marked build as failure
Finished: FAILURE

82 строка это как раз <testng> из кусочка кода вверху

не понимаю, почему он не находит мои классы


(Sergey Korol) #2

Попробуйте следовать инструкции.


(Diana) #4

удалось чуть продвинуться, тесты теперь запускаются, но падают

почему они падают, если запуская package.xml они запускаются и выполняются нормально?

ошибка:

run:
   [testng] java.lang.NoClassDefFoundError: com/beust/jcommander/ParameterException
   [testng] 	at java.lang.Class.getDeclaredMethods0(Native Method)
   [testng] 	at java.lang.Class.privateGetDeclaredMethods(Class.java:2521)
   [testng] 	at java.lang.Class.getMethod0(Class.java:2764)
   [testng] 	at java.lang.Class.getMethod(Class.java:1653)
   [testng] 	at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494)
   [testng] 	at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486)
   [testng] Caused by: java.lang.ClassNotFoundException: com.beust.jcommander.ParameterException
   [testng] 	at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
   [testng] 	at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
   [testng] 	at java.security.AccessController.doPrivileged(Native Method)
   [testng] 	at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
   [testng] 	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
   [testng] 	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
   [testng] 	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
   [testng] 	... 6 more
   [testng] The tests failed.

(Sergey Korol) #5

Говорит, что не найден jcommander.


(Sergey Ivanskoy) #6

По всей видимости, вы используете пакет testng из репозитория maven. Этот пакет не включает в себя все зависимости. Вам нужно или включить все необходимые зависимости и добавить их в classpath, или скачать полный пакет testng.
попробуйте скачать мой пакет отсюда https://www.dropbox.com/s/ppt7ew63i05mj2z/testng-6.8.zip?dl=0 и указать его в classpath (только у меня версия 6.8, а не 6.8.5)