Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Запуск JAR из командной строки без Main.Class


(Sergey356) #1

Всем привет :slight_smile: Помогите разобраться с задачей. Средствами Maven собрал file.jar, который является набором: класс с TestNG тестами, testng.xml и suite.xml для тестов. Класса с main(…) {…} нету. Тесты запускал в Idea. Хотелось бы узнать, каким образом можно запустить этот jar из командной строки или еще каким либо, чтобы тесты в нем отработали и сформировали результат. Данный jar планируется запускать на другой машине.


(Александр Таранков) #2

Чтобы запустить jar, необходимо чтоб в манифесте был указан запускаемый класс (с main-методом). Без этого никак.

Сформулируй задачу. Сейчас не очень понятно что ты хочешь сделать. Одним jar-ом запустить все тесты? Какая цель?


(Sergey356) #3

Моя задача передать админам тесты(в каком виде не важно) и описать способ запуска их. Админами был предложен вариант с jar. Поэтому я собрал все тесты в один jar и споткнулся на этапе его запуска.


(Александр Таранков) #4

Для запуска тестов кроме самих тестов нужны зависимости (другие jar-файлы). Завернуть jar-ы в jar конечно можно, но решение достаточно извращённое (для данной задачи).

Плюс к тому нужен класс, который запускает тесты (вопрос этого топика).

Проще всего разложить все файлы в структуру папок и завернуть всё целиком в zip. На сервере архив распаковать, прописать зависимости в CLASSPATH и запустить тесты обычной командой java org.testng.TestNG testng.xml


(Sergey356) #5

Если все это проделать, можно будет на сервере запустить Maven’ом?


(Александр Таранков) #6

Можно и Maven-ом, но зачем? Maven - это инструмент сборки в первую очередь, а не запуска тестов.

Тем методом, о котором я написал, тесты запускаются на любой машине с установленной Java. Кроме Java ничего не нужно (т.к. все зависимости идут в архиве вместе с тестами).

Если требования такие, что необходим именно Maven, то надо понять почему так. Вероятно, чтобы не таскать зависимости в архиве. Но тогда имеет смысл обойтись без промежуточной сборки zip-файла, а просто на сервере вытягивать из репозитория последнюю версию тестов, собирать их и запускать.