Нужен правильный шаг для создания файла Bat с использованием (TestNG.xml + Maven)
Мне интересно создать правильный файл Bat,
Я использую Maven + Selenium(TestNG)
Я пробовал много разных способов разрешить исключение, но это одно из самых распространенных исключений: не удалось найти или загрузить основной класс / java.lang.ClassNotFoundException
В моем проекте Maven нет папки bin или lib, и мне это интересно. Вызывать ли библиотеку из.m2(Maven) установки.
Чтобы вызвать файл класса, в моем maven проекте.class файл находится примерно так: E:\testBatchDemo\target\classes\mytest
Вот образец того, что я пробовал до сих пор,
set projectLocation=E:\testBatchDemo
cd %projectLocation%
set classpath=E:\testBatchDemo\target\classes\mytest;
java -cp %classpath% C:\Users\Desktop-pc\.m2\repository\org\testng\testng\6.14.3\testng-6.14.3.jar; C:\Users\Desktop-pc\.m2\repository\org\seleniumhq\selenium\selenium-java\3.12.0\selenium-java-3.12.0.jar; org.testng.TestNG %projectLocation%\testng.xml
pause
Любой может помочь, какую библиотеку нужно вызвать или как получить правильный путь.class.
1 ответ
Что касается описания вашего вопроса, я думаю, что есть определенные серые области, которые мы должны решить, прежде чем прыгать в решение.
- Мне интересно, чтобы создать правильный
batch
(т.е..bat
) file: По сути, Maven - это инструмент для сборки, который активно работает в сочетании сpom.xml
и не требует никакого командного файла Windows. - Двигаясь вперед, если ваш сценарий использования состоит в том, чтобы передать пакетный файл Windows в Jenkins для непрерывной интеграции, вам необходимо проверить этот шаг, если пакетный файл Windows способен запустить выполнение вашего Test Suite.
- Однако Дженкинс также может запустить выполнение вашего Test Suite через
pom.xml
и мавен.
Теперь ваш сценарий должен соответствовать одному из вышеупомянутых требований, как указано ниже:
- Пакетный файл Windows + TestNG
- Дженкинс + ТестНГ
- Дженкинс + Мавен
Поскольку вы подробно рассказали о пакетном файле Windows, ниже приведены соответствующие сведения в соответствии с первым параметром Пакетный файл Windows + TestNG:
Напишите простой блок кода с
@Test
аннотация TestNG выглядит следующим образом:package demoJenkins; import org.testng.annotations.Test; public class DemoJenkinsJob { @Test public void testJenkins() { System.out.println("Welcome to Jenkins World"); } }
Беги как
TestNG Test
- При успешном выполнении конвертировать используя
TestNG -> Convert to TestNG
а такжеtestng.xml
создается. testng.xml
будет выглядеть так:<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="Suite"> <test name="Test"> <classes> <class name="demoJenkins.DemoJenkinsJob"/> </classes> </test> <!-- Test --> </suite> <!-- Suite -->
Получите абсолютное местоположение проекта из вашей IDE (т.е. Eclipse), перейдите в подкаталог, создайте каталог lib
Скопируйте все соответствующие файлы jar и библиотеки (jar Selenium и TestNG) в каталог lib.
selenium-server-standalone-3.13.0.jar
org.testng_6.14.2.r201802161450.jar
com.beust.jcommander_1.72.0.jar
org.apache-extras.beanshell.bsh_2.0.0.b6.jar
org.yaml.snakeyaml_1.17.0.jar
Через CLI перейдите в каталог проектов и укажите следующий путь к классам:
>set classpath=<Project Directory>\bin;<Project Directory>\lib\*;
Через CLI выполнить
testng.xml
следующее:Project_Directory>java org.testng.TestNG testng.xml
При успешном выполнении в каталоге проектов создайте новый текстовый документ и добавьте следующий код:
java -cp bin;lib/* org.testng.TestNG testng.xml
Сохраните файл как run.bat
- Запустите пакетный файл Windows run.bat и убедитесь, что он выполняет тестовый набор, как и ожидалось.
Обновить
Согласно вашему вопросу и последующим комментариям,
Когда вы используете TestNG и / или Maven, эти framework/buildtool хранят все соответствующие jar-файлы в соответствующих местах. Но когда вы намереваетесь настроить buildpath вручную, вы должны вручную создать каталог lib и сохранить копию соответствующих jar-файлов.
Возможно, вам не нужно создавать каталог bin вручную, так как при успешной компиляции вашей Java-программы ваша программа автоматически создаст bin и сохранит файл класса перед выполнением.