java - 在自己的模块上为每个模块运行 spring boot 单元测试
问题描述
我们正在开发一个使用 Maven 进行依赖管理的 Spring-boot 应用程序。我们将项目分成几个modules
不同的服务。
我有一些疑问,希望在这里得到一些见解和答案。
<modules>
<module>app</module>
<module>core</module>
<module>firstlibrary</module>
<module>firstlibraryservice</module>
<module>secondlibrary</module>
<module>secondlibraryservice</module>
</modules>
应用程序-> 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依赖访问其他服务,但不允许基础模块直接访问其他基础模块。
我们现在遇到的问题是,当我们在单个模块上进行错误修复或添加功能时,我们被迫在 app 模块上编写测试,该模块可以访问在其pom
maven 文件中定义为依赖项的所有其他模块。
我认为我们在这里遇到了一个矛盾,因为使用微服务架构的主要原因是让我们尽可能独立于其他模块来开发和测试每个模块,而不是在整个应用程序级别上编写我们的测试。
现在,因为每个模块只能访问它的pom.xml
依赖项中的模块,我们无法清理编译每个模块或在模块级别编写测试。
我的问题是如何在自己的模块上为每个模块运行单元测试,而不是在模块上编写所有测试app
?(可以访问所有其他模块)
我希望我能在这里得到一些答案和建议。
解决方案
您的 POM 看起来很完美,并且可以正常工作。看看这篇博文:
你和你一样,你的项目必须毫无问题地运行,也许问题出在你项目的另一部分。
您可以使用此项目并与您的项目进行比较以找出问题:
推荐阅读
- spring - 在 Spring Security 中注销后重定向到外部身份验证时出现 Cors 问题
- python - 如何使用 Discord.py 发送消息
- matlab - 从 3 个向量创建热图
- regex - 正则表达式从字符串获取链接,除了多个 www
- php - php修复解析错误语法错误意外
- python - 大熊猫使用 DatetimeIndex 绘图的 DateFormatters
- angular - 有什么办法可以做某事,以便 ContentChildren 可以找到父级内部的组件
? - linux - 为什么与“-pie”选项链接的程序无法运行
- c - 如何在 linux socket 程序中修复我的管道?
- node.js - QnA maker 中的主动学习建议在服务设置中不可见