Как запустить 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. Вот что я сделал, чтобы выполнить работу:
-
После добавления TestNG в вашу библиотеку проекта создайте одну папку в именах вашего проекта как lib (имя может быть любым):
-
Перейдите в папку "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
- Теперь запустите 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