Запуск весенних загрузочных юнит-тестов для каждого модуля на собственном модуле - PullRequest
0 голосов
/ 29 января 2019

Мы работаем над приложением Spring-boot, в котором мы используем Maven для управления зависимостями.Мы разделили проект на несколько modules как разные сервисы.

У меня есть некоторые сомнения и надеюсь получить некоторые идеи и ответы здесь.

<modules>
    <module>app</module>
    <module>core</module>
    <module>firstlibrary</module>
    <module>firstlibraryservice</module>
    <module>secondlibrary</module>
    <module>secondlibraryservice</module>
</modules>

app -> pom.xml

<dependencies>
    <dependency>
        <groupId>com.microservice</groupId>
        <artifactId>core</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>com.microservice</groupId>
        <artifactId>firstlibraryservice</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>com.microservice</groupId>
        <artifactId>firstlibrary</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>com.microservice</groupId>
        <artifactId>secondlibraryservice</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>com.microservice</groupId>
        <artifactId>secondlibrary</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>


    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc7</artifactId>
        <version>12.1.0.1</version>
    </dependency>


</dependencies>

Основное намерение расщепленияПроект по работе с отдельными модулями заключается в повышении отказоустойчивости и масштабируемости всей системы.Мы разделили систему на разные сервисы, для каждого сервиса у нас есть base module, а также service module.

Каждый базовый модуль может обращаться к другим службам в зависимости от своих потребностей с зависимостью maven, но ни одному базовому модулю не разрешен прямой доступ к другим базовым модулям.

Проблема, с которой мы столкнулись сейчас, заключается в том, что, когда мы исправляем ошибки или добавляем функции для одного модуля, мы вынуждены писать тесты для модуля приложения, который имеет доступ ко всем другим модулям, которые определены как зависимости в его pomфайл maven.

Я думаю, что здесь мы столкнулись с противоречием, поскольку основная причина использования микросервисной архитектуры заставляла нас разрабатывать и тестировать каждый модуль как можно более независимо от других модулей вместо написания наших тестов для всего приложения.level.

Прямо сейчас, поскольку каждый модуль имеет доступ только к модулям, которые находятся в его pom.xml зависимостях, мы не можем очистить компиляцию каждого модуля или написать тесты на уровне модуля.

Мой вопрос как я могу запустить модульные тесты для каждого модуля на своем модуле вместо написания всех тестов на модуле app?(который имеет доступ ко всем другим модулям)

Я надеюсь, что смогу получить некоторые ответы и предложения здесь.

1 Ответ

0 голосов
/ 31 января 2019

Ваш POM выглядит отлично, и он просто работает.Посмотрите на это сообщение в блоге:

https://info.michael -simons.eu / 2018/06/18 / maven-use-junit-5-with-spring-boot-for-unit-and-интеграцию-tests /

Вы такой же, и ваш проект должен работать без проблем, возможно, проблема в другой части вашего проекта.

Вы можете использовать этот проект и сравнить сВаш проект, чтобы выяснить проблему:

https://github.com/GLinBoy/feader/tree/develop

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