Нужен правильный шаг для создания файла Bat с использованием (TestNG.xml + Maven) - PullRequest
0 голосов
/ 28 июня 2018

Мне интересно создать правильный 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 Ответ

0 голосов
/ 28 июня 2018

В соответствии с описанием вашего вопроса, я думаю, что есть определенные серые области, которые мы должны решить, прежде чем прыгнуть в решение.

  • Мне интересно создать правильный batch (т.е. .bat) файл : в основном, Maven - это инструмент для сборки , который активно работает в сочетании с pom.xml и не требует пакетного файла Windows .
  • Движение вперед, если ваш сценарий использования должен передать файл Windows в Дженкинс для Непрерывная интеграция тогда вам нужно проверить этот шаг, если пакетный файл Windows способен запустить запуск Test Suite .
  • Однако Дженкинс также может запустить выполнение вашего Test Suite через pom.xml и Maven .

Теперь ваш сценарий использования должен соответствовать одному из вышеупомянутых требований, как указано ниже:

  • Пакетный файл Windows + TestNG
  • Дженкинс + TestNG
  • Дженкинс + Maven

Как вы уже много говорили о пакетном файле 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

  • Скопируйте все соответствующие банки и библиотеки ( Selenium и TestNG jars) в каталог 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 перейдите к Каталогу проекта и укажите следующий classpath :

    >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 и убедитесь, что он выполняет Test Suite , как и ожидалось.

Обновление

В соответствии с вашим вопросом и последующим комментарием

  • Когда вы используете TestNG и / или Maven , эти framework / buildtool хранят все соответствующие jars в соответствующих местах. Но когда вы намереваетесь настроить buildpath вручную, вы должны вручную создать каталог lib и сохранить копию соответствующих jars .

  • Возможно, вам не нужно создавать каталог bin вручную, так как при успешной компиляции Java-программы ваша программа автоматически создаст bin и сохраняет файл class до исполнения .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...