Перейти к содержимому

Фотография

Как создать jar файл из проекта с автотестами?

jar-файл maven autotest jar

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 Inna25

Inna25

    Новый участник

  • Members
  • Pip
  • 5 сообщений
  • ФИО:Орлова Инна

Отправлено 28 февраля 2024 - 15:30

Добрый день!

 

Подскажите пожалуйста, если кто-то сталкивался с такой необходимостью.
Нужно создать jar-файл из проекта с автотестами с использованием maven и testNG.
Есть необходимость запускать тесты из командной строки, но не привычным способом:
mvn -Dsurefire.suiteXmlFiles=src/test/resources/testng.xml clean test 
а именно один раз создать jar-файл, а потом только запускать его.

Не смогла найти в сети ничего. Да и самой раньше никогда не было актуально. 
В проекте main класса нет. Структура в общих чертах такая:

Прикрепленный файл  Screenshot from 2024-02-28 18-20-27.png   32,97К   0 Количество загрузок:

 

Если при такой структуре создать jar-файл, их создаётся около 38 :) и если попытаться запустить jar-файл с названием проекта, то тесты не запускаются.
java -jar test_project.jar

Ошибка:

no main manifest attribute, in sd-wan_tests.jar

В файле Manifest раздел, где должен быть указан main класс удалила, т.к. с ним тоже не запускалось, потому что его нет :)
Manifest-Version: 1.0
Class-Path: log4j-core-2.19.0.jar log4j-api-2.19.0.jar failsafe-3.3.2.ja
 r selenium-chrome-driver-4.18.1.jar commons-io-2.6.jar selenium-devtool
 s-v85-4.18.1.jar selenium-ie-driver-4.18.1.jar selenium-http-4.18.1.jar
  guava-33.0.0-jre.jar selenium-manager-4.18.1.jar opentelemetry-extensi
 on-incubator-1.35.0-alpha.jar slf4j-api-1.7.5.jar selenium-java-4.18.1.
 jar opentelemetry-sdk-common-1.35.0.jar opentelemetry-sdk-metrics-1.35.
 0.jar selenium-api-4.18.1.jar opentelemetry-api-events-1.35.0-alpha.jar
  selenium-chromium-driver-4.18.1.jar selenium-safari-driver-4.18.1.jar 
 checker-qual-3.41.0.jar log4j-1.2.17.jar listenablefuture-9999.0-empty-
 to-avoid-conflict-with-guava.jar jsr305-3.0.2.jar jcommander-1.82.jar o
 pentelemetry-sdk-extension-autoconfigure-spi-1.35.0.jar selenium-firefo
 x-driver-4.18.1.jar auto-service-annotations-1.1.1.jar opentelemetry-co
 ntext-1.35.0.jar opentelemetry-exporter-logging-1.35.0.jar byte-buddy-1
 .14.12.jar selenium-devtools-v122-4.18.1.jar opentelemetry-sdk-logs-1.3
 5.0.jar opentelemetry-semconv-1.23.1-alpha.jar opentelemetry-sdk-extens
 ion-autoconfigure-1.35.0.jar slf4j-log4j12-1.7.5.jar selenium-json-4.18
 .1.jar commons-exec-1.3.jar selenium-remote-driver-4.18.1.jar selenium-
 devtools-v120-4.18.1.jar failureaccess-1.0.2.jar opentelemetry-api-1.35
 .0.jar selenium-support-4.18.1.jar testng-7.9.0.jar hamcrest-2.2.jar op
 entelemetry-sdk-1.35.0.jar selenium-edge-driver-4.18.1.jar selenium-os-
 4.18.1.jar j2objc-annotations-2.8.jar opentelemetry-sdk-trace-1.35.0.ja
 r selenium-devtools-v121-4.18.1.jar jquery-3.7.1.jar error_prone_annota
 tions-2.23.0.jar
 

  • 0

#2 sergueik

sergueik

    Постоянный участник

  • Members
  • PipPipPip
  • 166 сообщений
  • ФИО:кузьмин сергей

Отправлено 01 марта 2024 - 21:53

это называется runnable testng - ищите


  • 0

#3 Inna25

Inna25

    Новый участник

  • Members
  • Pip
  • 5 сообщений
  • ФИО:Орлова Инна

Отправлено 03 марта 2024 - 21:20

Ничего полезного не нашла.
Хочу уточнить, что  в моём проекте нет кода, который я тестирую. Это чисто проект для тестирования стороннего функционала.
Который не написан на Java.
Я поняла, что общий jar тоже есть, но там видимо не хватает манифеста с указанием main файла. Ошибка на это..
Но у меня его нет. Выходит, что запускать тесты xml-ными файлами
(на подобие таких, как здесь mvn -Dsurefire.suiteXmlFiles=src/test/resources/testng.xml clean test )

не получится никак?..


  • 0

#4 sergueik

sergueik

    Постоянный участник

  • Members
  • PipPipPip
  • 166 сообщений
  • ФИО:кузьмин сергей

Отправлено 03 марта 2024 - 23:24

насчет специально использовать аннотации testng.xml  я не умею 

про это правда немного путано например в https://www.lambdate...ite.setFileName

 

но запускать целыми классами довольно элементарно но естественно нужно чтобы класс попал в архив то есть этот тест был написан на жаве

 

 

public class EntryPoint {
@SuppressWarnings({ "rawtypes", "deprecation" })
public static void main(String[] args) {
TestListenerAdapter testListenerAdapter = new TestListenerAdapter();
TestNG testng = new TestNG();


XmlSuite suite = new XmlSuite();
// this part needs work:
// Default Suite
// Total tests run: 0, Failures: 0, Skips: 0
//
// suite.setFileName(args[0]); 
// testng.setCommandLineSuite(suite);




testng.setTestClasses(new Class[] { DataDrivenTest.class });
testng.addListener(testListenerAdapter);
testng.run();
}

 

 

 

делаете jar с манифестом и тесты вместо того  чтобы 

src/test/java 

перемещаете в 

src/main/java

  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных