Проблемы с тестами Cucumber после разделения микросервиса на многомодульную структуру ⇐ JAVA

Программисты JAVA общаются здесь
Anonymous
Проблемы с тестами Cucumber после разделения микросервиса на многомодульную структуру

Сообщение Anonymous »

Недавно мы разделили наш микросервис на несколько модулей для решения проблем с производительностью. Структура теперь включает в себя:
  • Общий модуль: общая библиотека (общая) с общей логикой.

    Основной модуль: основной модуль, в котором происходит большая часть обработки.
  • Модуль Visu: отдельный модуль для функциональных потребностей, связанных с визуализацией.
Мы используем Cucumber для тестирования. Вот как наша тестовая установка выглядела до разделения:
Тестовый класс Cucumber (предыдущая установка)

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

    @RunWith(Cucumber.class)
@CucumberOptions(features = "classpath:features", plugin = "pretty", glue = "fr.***.***.commande.services")
public class CucumberTest {
}
Класс конфигурации (предыдущая установка)

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

    @RunWith(SpringRunner.class)
@ContextConfiguration(classes = Application.class)
@CucumberContextConfiguration
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@Testcontainers
public abstract class ApplicationTest {

@ClassRule
public static TestPostgresContainer postgres = TestPostgresContainer.getInstance();
}
Эта настройка работала отлично до рефакторинга. Однако после реструктуризации проекта на модули мы столкнулись со следующей ошибкой:

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

    "Provide a glue option or specify with either @CucumberContextConfiguration or @ContextConfiguration."
Чтобы решить эту проблему, я попытался централизовать всю конфигурацию в одном файле и явно указать расположение конфигурации, определения шагов и новый общий модуль, поскольку это зависимость. Несмотря на эти попытки, ошибка сохраняется.

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


@RunWith(Cucumber.class)
@CucumberOptions(
features = "classpath:features",
plugin = {"pretty"})
@CucumberContextConfiguration
@ComponentScan(basePackages = {
"**.******.******.******.common",
"**.******.******.******.traitement.services"
})
@SpringBootTest(classes = Application.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@Testcontainers
public class CucumberTest {
@ClassRule
public static TestPostgresContainer postgres = TestPostgresContainer
.getInstance();
}
Это возвращает следующую ошибку:

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

    Errors:
[ERROR]   CucumberTest » StoppedByUser
[ERROR]   Failed to load ApplicationContext for [WebMergedContextConfiguration@66019544 testClass = **.******.******.******.traitement.CucumberTest, locations = [], classes = [**.******.******.******.traitement.Application], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [] .... (trancated)
Я застрял, поскольку пробовал несколько доступных мне альтернатив (согласно моим текущим знаниям).

Подробнее здесь: https://stackoverflow.com/questions/791 ... ule-struct

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