第 6 章 使用 JUnit 测试 Quarkus 应用程序
编译 Quarkus 入门项目后,使用 JUnit 5 框架测试应用,以确保它按预期运行。Quarkus 项目中有两个测试依赖项,它们会生成 pom.xml 文件:
测试时需要 quarkus-junit5 依赖项,因为它提供控制 JUnit 5 测试框架的 @QuarkusTest 注释。不要求依赖其他的依赖关系,但因为它提供了一种便捷的测试 HTTP 端点的方法,因此也被集成。它自动设置正确的 URL,因此不需要配置。
这些测试使用 REST 保障的框架,但若愿意,您可以使用不同的库。
先决条件
- 您已编译了 Quarkus 快速入门项目。
流程
打开生成的
pom.xml文件并查看内容:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意,:
-
将
java.util.logging.manager系统属性设置为确保应用程序使用正确的日志管理器进行测试。 -
maven.home属性指向settings.xml文件的位置,您可以在其中存储要应用到项目的自定义 Maven 配置。
-
将
编辑
src/test/java/org/acme/quickstart/GreetingResourceTest.java文件以匹配以下内容:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意使用
QuarkusTest运行程序,您可以指示 JUnit 在启动测试前启动应用。要从 Maven 运行这些测试,请输入以下命令:
./mvnw test
./mvnw testCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您也可以从 IDE 运行测试。如果您这样做,请确保首先停止应用程序。
默认情况下,测试在端口
8081上运行,因此它们不会与正在运行的应用程序冲突。在 Quarkus 中,RestAssured依赖项被配置为使用这个端口。如果要使用其他客户端,请使用@TestHTTPResource注释来直接将测试的应用程序的 URL 直接注入到Test类上的字段。此字段可以是类型String、URL或URI。您还可以在此注解中提供测试路径。例如,要测试映射到/myservlet的 servlet,请将以下行添加到您的测试中:@TestHTTPResource("/myservlet") URL testUrl;@TestHTTPResource("/myservlet") URL testUrl;Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
如有必要,在
quarkus.http.test-port配置属性中指定测试端口。
Quarkus 还创建一个名为 test.url 的系统属性,当您无法使用注入时,设置为基础测试 URL。