Как создать тестовый модуль maven API с неявной зависимостью от реализации для тестирования в IDE?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как создать тестовый модуль maven API с неявной зависимостью от реализации для тестирования в IDE?

Сообщение Anonymous »

Контекст вопроса:
В настоящее время я разрабатываю системную библиотеку Java, которая представляет собой прослойку между источником данных и бизнес-логикой пользователя. Чтобы протестировать его функциональность, поставщик данных (в моем случае это сетка данных) должен запускаться каждый раз при обработке нового теста.
поэтому, чтобы улучшить производительность выполнения теста, была создана тестовая инфраструктура. сделано в независимом модуле maven. Он запускает источник данных один раз, а потом просто очищает его содержимое для каждого нового теста.
Сама проблема:
Сейчас есть необходимость дать бизнесу разработчики логики нашей тестовой инфраструктуры по тем же причинам, связанным с производительностью. Но сделать это так просто невозможно, поскольку тестовая инфраструктура содержит некоторые системные компоненты нашей библиотеки.
Итак,
Предположим, у нас есть модуль A с реализацией вашей библиотеки и модуль B с некоторой тестовой инфраструктурой, которая содержит зависимости от этой реализации.
вопрос:Есть ли способ создать модуль C с доступом только к API из модуля A во время компиляции? (тесты и исходники) и можете ли использовать тестовую инфраструктуру из модуля B?
Менеджером сборки является

Maven 3.3. 3

Тест выполнен с использованием

JUnit 4.11

Java IDE это

IntelliJ IDEA

то, что я пробовал:< /strong>
Я пытался решить эту проблему, используя различные области Maven, например:
Зависимости pom модуля A:

Код: Выделить всё


my.group
moduleAAPI


Зависимости pom модуля B:

Код: Выделить всё


my.group
moduleA
provided


Зависимости pom модуля C:

Код: Выделить всё


my.group
moduleB
test



my.group
moduleAAPI
test


Но использование предоставленного означает, что нам нужно указать ModuleA в пути к классам при запуске тестов из модуля C. Это нормально при использовании плагина Surefire, но как добиться того же при запуске тестов из IDE?
Другой возможный вариант — добавить зависимость времени выполнения от модуля A следующим образом:

Код: Выделить всё


my.group
moduleB
test



my.group
moduleAAPI
test



my.group
moduleA
runtime


Но использование областей времени выполнения указывает на то, что источники из модуля A будут доступны во время компиляции теста (Введение в механизм зависимостей). И мне нужен только API, чтобы быть доступным.
Уже есть вопрос об альтернативной области действия:

Объявить зависимость Maven только как среду выполнения теста

p>

Есть ли альтернатива этим двум вариантам?

Подробнее здесь: https://stackoverflow.com/questions/392 ... ementation
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»