Нужен правильный шаг для создания файла 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 и сохранит файл класса перед выполнением.

Другие вопросы по тегам