SuperAPI AI 工具集

422-frameworks-quarkus-testing-integration-tests

测试与质量

查看项目

更新于 10-15 14:57

技能介绍

用途

该技能用于在 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。

技能范围:依据参考规则与正/反代码示例应用建议。

使用方式

技能定义了明确的工作流:

  1. 阅读参考并评估项目上下文:阅读 references/422-frameworks-quarkus-testing-integration-tests.md,并在提出变更前检查当前项目设置。
  2. 收集范围并确定目标改进:识别请求的结果、约束以及最小安全变更集。
  3. 应用与框架对齐的变更:按照参考模式与项目约定实现或重构配置/代码。
  4. 运行验证并报告结果:执行相应的构建/测试,并总结变更内容、验证结果及后续操作。

技能包含强制约束:

  • 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。
  • 关于该技能的具体收费、价格、平台支持范围等信息暂未提供。