1.7. 测试您的红帽构建的 Quarkus 应用程序


编译 Quarkus Getting Started 项目后,您可以通过使用 JUnit 5 框架测试应用程序来验证它是否按预期运行。

注意

或者,您可以启用持续测试 Quarkus 应用程序。如需更多信息,请参阅启用和运行持续测试

Quarkus 项目在 pom.xml 文件中生成以下两个测试依赖项:

  • quarkus-junit5: 测试必需,因为它提供了控制 JUnit 5 测试框架的 @QuarkusTest 注释。
  • rest-assured: 不需要使用 rest-assured 依赖项,因为它提供了一种测试 HTTP 端点的便捷方法,它已被集成。rest-assured 依赖项会自动设置正确的 URL,因此不需要配置。

pom.xml 文件示例:

<dependency>
    <groupId>io.quarkus</groupId>
    <artifactId>quarkus-junit5</artifactId>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>io.rest-assured</groupId>
    <artifactId>rest-assured</artifactId>
    <scope>test</scope>
</dependency>
Copy to Clipboard Toggle word wrap
注意

这些测试使用 REST 评估框架,但如果您愿意,您可以使用不同的库。

先决条件

流程

  1. 打开生成的 pom.xml 文件并查看内容:

    <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>${surefire-plugin.version}</version>
        <configuration>
           <systemPropertyVariables>
             <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
             <maven.home>${maven.home}</maven.home>
           </systemPropertyVariable>
        </configuration>
    </plugin>
    Copy to Clipboard Toggle word wrap

    请注意以下属性的值:

    • 设置了 java.util.logging.manager 系统属性,以确保您的应用程序在测试中使用正确的日志管理器。
    • maven.home 属性指向 settings.xml 文件的位置,您可以在其中存储您要应用到项目的自定义 Maven 配置。
  2. 编辑 src/test/java/org/acme/quickstart/GreetingResourceTest.java 文件,以匹配以下内容:

    package org.acme.quickstart;
    
    import io.quarkus.test.junit.QuarkusTest;
    import org.junit.jupiter.api.Test;
    
    import java.util.UUID;
    
    import static io.restassured.RestAssured.given;
    import static org.hamcrest.CoreMatchers.is;
    
    @QuarkusTest
    public class GreetingResourceTest {
    
        @Test
        public void testHelloEndpoint() {
            given()
              .when().get("/hello")
              .then()
                 .statusCode(200)
                 .body(is("Hello from Quarkus REST"));
        }
    
        @Test
        public void testGreetingEndpoint() {
            String uuid = UUID.randomUUID().toString();
            given()
              .pathParam("name", uuid)
              .when().get("/hello/greeting/{name}")
              .then()
                .statusCode(200)
                .body(is("hello " + uuid));
        }
    
    }
    Copy to Clipboard Toggle word wrap
    注意

    通过使用 QuarkusTest 运行程序,您可以指示 JUnit 启动应用,然后再启动测试。

  3. 要从 Maven 运行测试,请输入以下命令:

    ./mvnw test
    Copy to Clipboard Toggle word wrap
    注意

    您还可以从 IDE 运行测试。如果这样做,请先停止应用程序。

    默认情况下,测试在端口 8081 上运行,因此它们不会与正在运行的应用程序冲突。在 Quarkus 中,RestAssured 依赖项被配置为使用此端口。

    注意

    如果要使用其他客户端,请使用 @TestHTTPResource 注释,将已测试应用的 URL 直接注入到 Test 类中的字段中。此字段可以是 StringURLURI。您还可以在 @TestHTTPResource 注释中输入测试路径。例如,要测试公开给 /foo 的资源,请在测试中添加以下行:

    @TestHTTPResource("/foo")
    URL testUrl;
    Copy to Clipboard Toggle word wrap
  4. 如有必要,在 quarkus.http.test-port 配置属性中指定测试端口。
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部