Где я должен разместить утилиты совместного тестирования в многомодульном проекте Maven? - PullRequest
4 голосов
/ 12 октября 2009

Я, вероятно, не слишком зацикливался на этом, но у моего проекта очень структурированный макет, который мне очень понравился. На этот раз такая большая структура оказалась полезной, поэтому я не хочу, чтобы она снова стала грязной.

Для начала каждый модуль состоит из нескольких пакетов Java:

com.mycompany.mysoftware.modulename
com.mycompany.mysoftware.modulename.impl
com.mycompany.mysoftware.modulename.osgi
com.mycompany.mysoftware.modulename.test

Основной код находится в .impl. Интерфейсы, некоторые перечисления и некоторые классы контейнеров данных, которые используются другими модулями, живут в пакете без суффикса. В пакете .osgi есть специальный код OSGi (BundleActivator s и т. Д.), А в пакете .test - модульные тесты.

Теперь у меня есть классы, которые имитируют модуль для тестирования других. Мне интересно, стоит ли мне помещать их в пакет .test модуля common, который уже содержит разделяемые библиотеки для основного кода, или мне нужен новый модуль test, чтобы я мог установить другую зависимость область для в Maven.

ETA : Одна из проблем, с которыми я сталкиваюсь, заключается в том, что я получаю циклические зависимости: если у меня есть два модуля, а для модульных тестов требуется подделка другого, модуль, содержащий подделку, имеет зависимость на модуле, содержащем интерфейс, который является тем же модулем, который содержит модульное тестирование. Таким образом, подделка должна быть вместе с тестом, но это приводит к значительному дублированию кода. Или для каждого модуля я делаю поддельный модуль, но я чувствую, что он выходит из-под контроля ...

1 Ответ

2 голосов
/ 12 октября 2009

Вы не хотите, чтобы ваш тестовый код был упакован в общий модуль, используемый основным кодом, не так ли?

Поэтому мне кажется очевидным ответ: создайте тестовый модуль и используйте его как зависимость отобласть теста.

( РЕДАКТИРОВАТЬ: Я ставлю ответ на проблему, упомянутую в обновлении вопроса ниже)

Что касается циклических зависимостейположить интерфейсы в отдельный модуль?

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