Я запускаю ряд тестов с использованием junit, и я создал для него проект maven. Я использую плагин surefire для запуска тестов. Для удобства я хотел упаковать этот проект в качестве исполняемого файла jar. Поэтому я поместил все тестовые классы в каталог src / main / java, как рекомендовано для использования плагина maven shade для генерации uber jar. Я создал класс с методом main и использую maven invoker для выполнения моих тестов. Тесты выполняются идеально, когда я использую свой ide для запуска основного метода. Однако после того, как я упаковал его как банку, инициатор не может найти файл pom.xml. Если я помещаю копию файла pom.xml в тот же каталог, что и jar, вызывается maven, но он не может выполнить тесты, так как верный огонь не может найти тесты.
Я хотел бы знать, есть ли решение для этого или есть лучший подход к достижению моей цели.
@ khmarbaise и все остальные, которые пытаются мне помочь, позвольте мне описать мой сценарий немного подробнее. Давайте возьмем любой API, например, lastfm api, я буду писать классы для каждой конечной точки API, и каждый метод в каждом классе будет тестом. Я использую junit для выполнения тестов. Я использую оболочку junit, называемую serenity bdd, которая помогает мне структурировать мои тесты и генерировать сводные отчеты. Целостность цели maven: агрегат будет генерировать агрегированный отчет обо всех тестах. Я использую maven invoker для запуска тестов с использованием плагина surefire, а затем агрегирую тесты, используя спокойствие. В моем проекте eclipse я просто создаю конфигурацию maven run и задаю цели maven. Или же я бы использовал терминал для запуска maven из базового каталога моего проекта. Помимо моего файла классов, у меня есть несколько ресурсов, таких как CSV-файлы, которые являются входными данными для параметрических тестов, папка журналов, в которую сохраняются все генерируемые файлы журналов, и другие файлы примеров для тестирования API загрузки файлов. Я чувствовал, что было бы просто упаковать все это как jar-файл и позволить моим разработчикам добавить этот jar-файл как зависимость и запустить простой скрипт, который запускает jar-файл каждый раз, когда они создают и разворачивают сборку. Получение pom-файла для вызова maven было тривиально в случае затмения или командной строки, но не так просто, когда оно внутри пакета.