Как запустить TestNG из командной строки

Как именно я запускаю проект .java TestNG из командной строки?

Я прочитал документацию TestNG и пробовал следующее безрезультатно:

C:\projectfred> java org.testng.TestNG testng.xml 

... со следующим файлом testng.xml в моем проекте:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >  
<suite name="SuiteAll" verbose="1">
    <test name="TestAll">  
        <packages>  
            <package name="com.project.fred.tests"/>
        </packages>  
    </test>  
</suite>

Ошибка, которую я получаю, такова:

Exception in thread "main" java.lang.NoClassDefFoundError: org/testng/TestNG
Caused by: java.lang.ClassNotFoundException: org.testng.TestNG
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: org.testng.TestNG.  Program will exit.

Очевидно, что я не ссылаюсь на TestNG правильно в моей командной строке. Кто-нибудь знает, как заставить это работать?

Ответы

Ответ 1

Вам нужно иметь testng.jar в пути к классам.

попробуйте C:\projectfred> java -cp "path-tojar/testng.jar:path_to_yourtest_classes" org.testng.TestNG testng.xml

Update:

В linux я запустил эту команду, и в Windows это будет нечто похожее на

test/bin# java -cp ".:../lib/*" org.testng.TestNG testng.xml

Структура каталогов:

/bin - All my test packages are under bin including testng.xml
/src - All source files are under src
/lib - All libraries required for the execution of tests are under this.

Как только я скомпилирую все источники, они перейдут в каталог bin. Таким образом, в classpath мне нужно указать содержимое каталога bin и всех библиотек, таких как testng.xml, loggers и т.д. Здесь. Также скопируйте файл testng.xml в bin, если вы не хотите указывать полный путь, где доступен testng.xml.

 /bin
    -- testng.xml
    -- testclasses
    -- Properties files if any.
 /lib
    -- testng.jar
    -- log4j.jar

Update:

Перейдите в папку MyProject и введите команду java, как показано ниже: -

java -cp ".: C:\Program Files\jbdevstudio4\studio\plugins\*" org.testng.TestNG testng.xml

Я считаю, что файл testng.xml находится под C:\Users\me\workspace\MyProject, если нет, пожалуйста, укажите полный путь для файла testng.xml

Ответ 2

Хорошо, после 2 дней попыток выяснить, почему я не могу запустить пример из

http://www.tutorialspoint.com/testng/testng_environment.htm следующий код не работает для меня

C:\TestNG_WORKSPACE>java -cp "C:\TestNG_WORKSPACE" org.testng.TestNG testng.xml

Это исправлено следующим образом: я пришел к следующему выводу: сначала установите eclipse и загрузите плагин TestNG. После этого следуйте инструкциям из учебника, чтобы создать и скомпилировать тестовый класс из cmd с помощью javac и добавить testng.xml. Чтобы запустить testng.xml в Windows 10 cmd, запустите следующую строку:

java -cp C:\Users\Lenovo\Desktop\eclipse\plugins\org.testng.eclipse_6.9.12.201607091356\lib\*;C:\Test org.testng.TestNG testng.xml

уточнить: C:\Users\Lenovo\Desktop\eclipse\plugins\org.testng.eclipse_6.9.12.201607091356\lib\* Путь выше представляет расположение jcommander.jar и testng.jar, которое вы скачали, установив TESTNG Плагин для затмения. Путь может отличаться, поэтому убедитесь, что просто откройте место установки eclipse, перейдите к плагинам и найдите jcommander.jar. Затем скопируйте это местоположение и после этого добавьте *, чтобы выбрать все необходимые .jars.

C:\Test  

Путь выше представляет расположение файла testing.xml в вашем проекте. Получив все необходимые пути, добавьте их с помощью ";".

Я надеюсь, что был полезным для некоторых из вас, ребята :)

Ответ 3

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

1) Set the classpath for the testng.jar in the environment variables
(either manually or via command line).

2) Create a new folder "MyTest".

3) Compile all your classes(testNG+java) and put them(.class files )
in a new folder "Mytest\bin".

4) Put your 'testng.xml' and '.properties' files to "Mytest\bin"
again.

5) Put all the .jar files (testng,selenium... etc) in a new folder
"Mytest\lib".

6) Browse to the folder "bin" via command line and run the command
java -cp "..\lib\*;" org.testng.TestNG testng.xml

это должно запускать ваши тестовые версии.

Ответ 4

Использование ";" в качестве разделителя на проблемах Windows, было разрешено.

java -cp "path of class files; testng jar file path" org.testng.TestNG testng.xml

например: -

java -cp ".\bin;..\common_lib\*;" org.testng.TestNG testng.xml

Ответ 5

Подготовить MANIFEST.MF файл со следующим содержимым

Manifest-Version: 1.0
Main-Class: org.testng.TestNG

Упакуйте все классы тестов и зависимостей в одну банку, скажем tests.jar

jar cmf MANIFEST.MF tests.jar -C folder-with-classes/ .

Обратите внимание на ".", замените folder-with-classes/ на правильное имя папки или путь.

Создайте testng.xml с контентом, подобным ниже

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Tests" verbose="5">
  <test name="Test1">
    <classes>
      <class name="com.example.yourcompany.qa.Test1"/>
    </classes>
  </test>  
</suite>

Замените com.example.yourcompany.qa.Test1 на путь к вашему тестовому классу.

Запустите тесты

java -jar tests.jar testng.xml

Ответ 6

Ниже команда работает для меня. При условии, что все необходимые jar, включая jar testng, хранятся внутри lib.

java -cp "lib/*" org.testng.TestNG testng.xml

Ответ 7

Я столкнулся с той же проблемой, потому что я скачал плагин TestNG из Eclipse. Вот что я сделал, чтобы выполнить работу:

  1. После добавления TestNG в вашу библиотеку проекта создайте одну папку в именах вашего проекта как lib (имя может быть любым):

  2. Перейдите в папку "C:\Program Files\Eclipse\eclipse-java-mars-R-win32-x86_64\eclipse\plugins" и скопируйте файл com.beust.jcommander_1.72.0.jar и org.testng_6.14.2.r20180216145.jar в созданную папку (lib).

Примечание: файлы являются testng.jar и jcommander.jar

  1. Теперь запустите CMD, перейдите в каталог вашего проекта и введите:
    Java -cp C:\Users\User123\TestNG\lib *; C:\Users\User123\TestNG\bin org.testng.TestNG testng.xml

Это !
Дайте мне знать, если у вас есть еще вопросы.

Ответ 8

Вам нужно будет использовать точку с запятой в качестве разделителя, указав путь к файлу jar и class в окнах. Это решило проблему.
Предполагая, что файл класса находится под C:.

java -cp ".;C:\testng.jar" org.testng.TestNG testing.xml

Ответ 9

Если вы используете Maven, вы можете действительно легко запустить его из строки cmd, перейдите в каталог с testng.xml (или как там у вас называется, xml, в котором есть все классы, которые будут выполняться) и запустите этот cmd:

mvn clean test -DsuiteXmlFile=testng.xml 

Эта страница объясняет это более подробно: Как запустить testng.xml из командной строки Maven

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

Ответ 10

После того, как я прочитал этот пост, это отлично сработало для меня на IntelliJ Idea:

java -cp "./lib/*;Path to your test.class"  org.testng.TestNG testng.xml

Вот моя структура каталогов:

/lib
  -- all jar including testng.jar
/out
  --/production/Example1/test.class
/src
 -- test.java
testing.xml

Итак, выполните эту команду:

java -cp "./lib/*;C:\Users\xyz\IdeaProjects\Example1\out\production\Example1" org.testng.TestNG testng.xml

Мой каталог проекта Example1 находится в пути:

C:\Users\xyz\IdeaProjects\

Ответ 11

Если ни один из приведенных выше ответов не работает, вы можете запустить тест в IDE, получить путь к классу и использовать его в своей команде. Пример: если вы используете Intellij IDEA, вы можете найти его в верхней части консоли (скриншот ниже). Intellij Console

Нажатие на выделенную часть раскрывает и отображает полный путь к классу.

вам нужно удалить ссылки на jar файлы внутри папки: JetBrains\IntelliJ IDEA Community Edition 2019.1.3