Перекомпиляция исходников с помощью тестового файла - PullRequest
0 голосов
/ 09 февраля 2011

У меня есть многомодульный проект, который зависит от довольно большой сторонней библиотеки / apis.Невозможно запустить автоматические тесты Junit с реальной библиотекой, так как API взаимодействует с системой, внешней по отношению к управлению средой разработки.В качестве обходного пути мы создали классы, которые издевались над интерфейсами / apis, чтобы мы могли делать джунты.Мы используем eclipse в качестве нашей IDE для разработки, поэтому, чтобы запустить junits, мы просто поднимаем jar выше в classpath, перекомпилируем, запускаем наши junit, и все прекрасно работает.

Теперь ищем похожее решение, когда мыпереезжаем в мавен.По сути, после сборки нашего кода необходимо заново собрать все его, используя mock jar для запуска тестов junit.Это распространяется на все модули приложения.Я попытался добавить jar в тестовую область, но это используется только для компиляции тестовых классов;исходные классы все еще скомпилированы с реальным jar.Тем не менее, он терпит неудачу во время выполнения, так как наш фиктивный jar не соответствует всем сигнатурам реального jar (так что горячая замена jar не работает; согласование всех сигнатур было бы большим делом).Таким образом, исходный код должен быть перекомпилирован с помощью jar.

Таким образом, кажется, есть два варианта: 1) Создайте автономный тестовый модуль, который каким-то образом вытягивает весь код исходных модулей и перекомпилирует его, используя макет jar и запускаеттесты или 2) Каждый модуль создает тестовый jar в дополнение к его устанавливаемому jar, скомпилированному с mock jar, который затем используется зависимыми модулями на этапе тестирования.

Пожалуйста, сообщите.Будем весьма благодарны за любые примеры того, как это можно сделать.

1 Ответ

0 голосов
/ 16 февраля 2011

Проверьте эту ссылку. Я думаю, что есть то, что вам нужно. Вы можете справиться с этим, используя два профиля Maven. Согласно this вы можете иметь разные зависимости для каждого профиля.

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