用途:在 Gradle 项目中搭建完整测试配置,适用于需要引入 JUnit 5、使用真实数据库做集成测试、拆分单元与集成测试、统计并强制代码覆盖率、并行执行和输出 CI/CD 测试报告的场景。
主要能力:配置 JUnit 5(Jupiter)依赖与 useJUnitPlatform,支持按标签、引擎、类名过滤测试;通过 TestContainers 启动 PostgreSQL 与 Pub/Sub 模拟器等真实依赖;用独立 sourceSets 与 integrationTest 任务分离单元测试和集成测试;集成 JaCoCo 生成 XML/HTML 覆盖率报告,并按 BUNDLE、CLASS、METHOD 级别设置最低覆盖率阈值;用 test-logger 插件美化输出;支持并行测试、详细日志及独立运行各类测试。
使用方式:在 build.gradle.kts 中添加 testImplementation 依赖(如 org.junit.jupiter:junit-jupiter、org.testcontainers:testcontainers:1.21.0、org.testcontainers:postgresql 等),应用 jacoco 插件,配置 tasks.test、jacocoTestReport、jacocoTestCoverageVerification 与 check 依赖。集成测试按目录 src/integrationTest 组织,并用 @Testcontainers 与 @DynamicPropertySource 注入容器连接信息。运行命令示例:./gradlew test、./gradlew integrationTest、./gradlew check、./gradlew test jacocoTestReport、./gradlew test --tests "com.example.ServiceTest"。
限制:使用 TestContainers 需本地或 CI 环境有可用 Docker,必要时配置 TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE 与 DOCKER_HOST;覆盖率阈值、并行度、日志级别等需按项目实际调整。文档未提供完整的版本兼容范围、性能开销数据与故障排查细节,部分内容需参考其 references 目录。