You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Gradle项目中运行@QuarkusIntegrationTest集成测试

Quarkus集成测试Gradle配置及运行指南

1. 基础前提

确保你的build.gradle已经配置了Quarkus官方Gradle插件:

plugins {
    id 'java'
    // 替换为你实际使用的Quarkus版本号
    id 'io.quarkus' version '3.15.1'
}

2. 配置集成测试源集

我们通常会把集成测试代码和单元测试代码拆分存放,首先声明集成测试的源码和资源目录:

sourceSets {
    integrationTest {
        // 集成测试代码存放路径
        java.srcDir 'src/integrationTest/java'
        // 集成测试配置文件存放路径
        resources.srcDir 'src/integrationTest/resources'
        // 继承主源码、单元测试的编译和运行依赖
        compileClasspath += sourceSets.main.output + sourceSets.test.output
        runtimeClasspath += sourceSets.main.output + sourceSets.test.output
    }
}

3. 定义集成测试执行任务

添加专门的Gradle任务用来执行@QuarkusIntegrationTest标注的测试用例:

task integrationTest(type: Test) {
    testClassesDirs = sourceSets.integrationTest.output.classesDirs
    classpath = sourceSets.integrationTest.runtimeClasspath
    // 必须先构建Quarkus产物再执行测试
    dependsOn quarkusBuild
    // 启用JUnit平台运行测试
    useJUnitPlatform()
    // 可选:自定义测试报告输出路径
    reports {
        html.required = true
        html.destination = file("${buildDir}/reports/integrationTest")
    }
}
// 可选配置:执行./gradlew check时自动运行集成测试
check.dependsOn integrationTest

4. 编写OpenAPI校验测试示例

在src/integrationTest/java目录下新建测试类,示例如下:

import io.quarkus.test.junit.QuarkusIntegrationTest;
import io.restassured.RestAssured;
import org.junit.jupiter.api.Test;
import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.notNullValue;

@QuarkusIntegrationTest
public class OpenApiGenerationIT {

    @Test
    public void verifyOpenApiYamlContent() {
        // Quarkus默认OpenAPI端点为/q/openapi
        RestAssured.given()
                .when().get("/q/openapi")
                .then()
                .statusCode(200)
                // 校验YAML结构符合预期
                .body("openapi", notNullValue())
                .body("paths", notNullValue())
                // 可自行添加自定义规则校验,比如校验指定接口存在
                .body(containsString("/your/custom/api/path"));
    }
}

5. 运行方式

  • 单独运行所有集成测试:执行命令 ./gradlew integrationTest
  • 同步运行单元测试和集成测试:执行命令 ./gradlew check

标注了@QuarkusIntegrationTest的测试会直接针对构建生成的Quarkus正式产物运行,而非dev模式的临时应用,测试结果和生产运行效果完全一致。

内容的提问来源于stack exchange,提问作者Sasha Shpota

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 18:45:02