用途
该技能用于在 Quarkus 项目中应用集成测试模式,通过真实装配(real wiring)与可复现的基础设施来编写或改进集成测试。适用于需要为 Quarkus 应用添加或完善集成测试、配置测试容器、对外部 HTTP 依赖打桩、设置打包产物或原生二进制测试、修复测试数据隔离或配置 Maven 测试拆分等场景。
主要能力
技能覆盖以下集成测试主题:
- @QuarkusTest:用于 JVM 内集成测试,具备真实的 CDI 装配。
- Dev Services:自动容器供给,涉及配置项
%test.quarkus.datasource.devservices。 - Testcontainers:通过
QuarkusTestResourceLifecycleManager使用,包含启动/停止生命周期与动态配置注入。 - WireMock:通过
QuarkusTestResourceLifecycleManager对外部 HTTP 服务进行打桩。 - @QuarkusIntegrationTest:针对打包后的 JAR 或原生二进制进行黑盒测试。
- HTTP 测试:使用 REST Assured 针对 Quarkus 测试端口进行测试。
- 数据隔离:使用
@TestTransaction实现自动回滚;HTTP 测试使用@BeforeEach清理。 - Maven 三层拆分:
*Test→ Surefire(快速),*IT+*AT→ Failsafe(verify 阶段)。 - 原生镜像测试注意事项:使用
@DisabledOnNativeImage。
技能范围:依据参考规则与正/反代码示例应用建议。
使用方式
技能定义了明确的工作流:
- 阅读参考并评估项目上下文:阅读
references/422-frameworks-quarkus-testing-integration-tests.md,并在提出变更前检查当前项目设置。 - 收集范围并确定目标改进:识别请求的结果、约束以及最小安全变更集。
- 应用与框架对齐的变更:按照参考模式与项目约定实现或重构配置/代码。
- 运行验证并报告结果:执行相应的构建/测试,并总结变更内容、验证结果及后续操作。
技能包含强制约束:
- MANDATORY:在应用任何变更前运行
./mvnw compile或mvn compile。 - PREREQUISITE:项目在应用集成测试改进前必须能够编译。
- SAFETY:如果编译失败,立即停止。
- BLOCKING CONDITION:编译错误必须由用户解决后才能继续。
- VERIFY:应用改进后运行
./mvnw clean verify或mvn clean verify;Testcontainers 与 Dev Services 需要 Docker。 - BEFORE APPLYING:阅读参考以获取详细规则与示例。
适用场景
- 在 Quarkus 项目中添加或改进集成测试。
- 为 Quarkus 测试配置 Testcontainers 或 Dev Services。
- 在 Quarkus 集成测试中为外部 HTTP 依赖添加 WireMock 桩。
- 设置
@QuarkusIntegrationTest以测试打包产物或原生二进制。 - 修复测试数据隔离或配置 Maven Surefire/Failsafe 拆分。
限制
- 应用变更前必须先编译,编译失败需立即停止并由用户解决。
- 应用改进后需运行
clean verify进行验证。 - Testcontainers 与 Dev Services 可能需要 Docker 环境。
- 详细规则、示例与约束需查阅参考文件
references/422-frameworks-quarkus-testing-integration-tests.md。 - 关于该技能的具体收费、价格、平台支持范围等信息暂未提供。