| name | springboot-verification |
| description | Spring Boot项目验证循环:构建、静态分析、测试覆盖、安全扫描,以及发布或PR前的差异审查。 |
| origin | ECC |
Spring Boot 验证循环
在提交 PR 前、重大变更后以及部署前运行。
何时激活
- 为 Spring Boot 服务开启拉取请求之前
- 在重大重构或依赖项升级之后
- 用于暂存或生产环境的部署前验证
- 运行完整的构建 → 代码检查 → 测试 → 安全扫描流水线
- 验证测试覆盖率是否满足阈值
阶段 1:构建
mvn -T 4 clean verify -DskipTests
./gradlew clean assemble -x test
如果构建失败,停止并修复。
阶段 2:静态分析
Maven(常用插件):
mvn -T 4 spotbugs:check pmd:check checkstyle:check
Gradle(如果已配置):
./gradlew checkstyleMain pmdMain spotbugsMain
阶段 3:测试 + 覆盖率
mvn -T 4 test
mvn jacoco:report
./gradlew test jacocoTestReport
报告:
单元测试
使用模拟的依赖项来隔离测试服务逻辑:
@ExtendWith(MockitoExtension.class)
class UserServiceTest {
@Mock private UserRepository userRepository;
UserService userService;
{
(, );
(, , );
(userRepository.save(any(User.class))).thenReturn(expected);
userService.create(dto);
assertThat(result.name()).isEqualTo();
verify(userRepository).save(any(User.class));
}
{
(, );
(userRepository.existsByEmail(dto.email())).thenReturn();
assertThatThrownBy(() -> userService.create(dto))
.isInstanceOf(DuplicateEmailException.class);
}
}