1.8. 启用并运行持续测试
使用红帽构建的 Quarkus,您可以在开发应用程序时持续测试您的代码更改。Quarkus 提供持续测试功能,您可以在进行后立即运行,并将更改保存到代码。
运行连续测试时,在启动应用程序后测试会暂停。在应用程序启动时,您可以立即恢复测试。Quarkus 应用程序决定运行哪个测试,以便测试仅在已更改的代码上运行。
Quarkus 的持续测试功能会被默认启用。您可以通过将 src/main/resources/application.properties 文件中的 quarkus.test.continuous-testing 属性设置为 disabled 来禁用连续测试。
如果您之前禁用了持续测试,并希望再次启用它,您必须重启 Quarkus 应用程序,然后才能开始测试。
先决条件
- 您已编译了 Quarkus Getting Started 应用程序(或其他任何应用程序)。如需更多信息,请参阅 编译和启动 Red Hat build of Quarkus Getting Started 项目。
流程
启动 Quarkus 应用程序。
如果您使用 code.quarkus.redhat.com 或 Quarkus CLI 创建 Getting Started 项目,则在生成项目时会提供 Maven 打包程序。在项目目录中输入以下命令:
./mvnw quarkus:dev
./mvnw quarkus:devCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您使用在您的机器上安装的 Apache Maven 创建 Getting Started 项目,请输入以下命令:
mvn quarkus:dev
mvn quarkus:devCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您在 dev 模式下运行持续测试并使用 Quarkus CLI,请输入以下命令:
quarkus dev
quarkus devCopy to Clipboard Copied! Toggle word wrap Toggle overflow
在生成的输出日志中查看测试状态的详情。
注意要查看输出日志,您可能需要滚动到屏幕的底部。
启用持续测试后,会显示以下信息:
Press [e] to edit command line args (currently ''), [r] to re-run, [o] Toggle test output, [:] for the terminal, [h] for more options>
Press [e] to edit command line args (currently ''), [r] to re-run, [o] Toggle test output, [:] for the terminal, [h] for more options>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 当持续测试暂停时,会显示以下信息:
Press [e] to edit command line args (currently ''), [r] to resume testing, [o] Toggle test output, [:] for the terminal, [h] for more options>
Press [e] to edit command line args (currently ''), [r] to resume testing, [o] Toggle test output, [:] for the terminal, [h] for more options>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意默认情况下,在启用连续测试后,测试会在启动应用程序后暂停。要查看用于控制如何运行测试的键盘命令,请查看 命令来控制连续测试。
-
要开始运行测试,请在键盘上按
r键。 查看更新的输出日志,以监控测试状态和测试结果,检查测试统计信息,并获取后续操作的指导。例如:
All 2 tests are passing (0 skipped), 2 tests were run in 2094ms. Tests completed at 14:45:11. Press [e] to edit command line args (currently ''), [r] to re-run, [o] Toggle test output, [:] for the terminal, [h] for more options>
All 2 tests are passing (0 skipped), 2 tests were run in 2094ms. Tests completed at 14:45:11. Press [e] to edit command line args (currently ''), [r] to re-run, [o] Toggle test output, [:] for the terminal, [h] for more options>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
-
进行代码更改。例如,在文本编辑器中,打开
src/main/java/org/acme/quickstart/GreetingsResource.java文件。 更改"hello"端点,以返回 "Hello world" 并保存文件。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 验证 Quarkus 是否立即重新运行测试来测试更改的代码。
查看输出日志,以检查测试结果。在本例中,测试会检查更改的字符串是否包含 "Hello from Quarkus REST" 值。测试失败,因为字符串已更改为 "Hello world"。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
要退出连续测试,请在键盘上按
Ctrl-C或q。
如果您将值重新更改为 "Hello from Quarkus REST",则测试会自动再次运行。
1.8.1. 控制连续测试的命令 复制链接链接已复制到粘贴板!
您可以使用键盘上的热键命令控制您的选项以进行持续测试。要查看完整的命令列表,请在键盘上按"h"可用的选项如下:
| 命令 | 描述 |
|---|---|
| r | 重新运行所有测试。 |
| f | 重新运行失败的所有测试。 |
| b | 切换"broken"模式。只有之前失败的测试才会运行,即使其他测试会受到您的代码更改的影响。如果您更改许多测试所使用的代码,但只想查看失败的测试,则此选项可能很有用。 |
| v | 打印输出详细描述了从上次测试运行到控制台的测试失败。如果上一次测试运行以来有相当多的控制台输出,此选项可能很有用。 |
| p | 临时暂停运行测试。如果您进行很多代码更改,这可能很有用,但在完成更改后不想获得测试反馈。 |
| q | 退出连续测试。 |
| o | 将测试输出打印到控制台。这默认是禁用的。禁用测试输出后,输出会被过滤并保存,但不会在控制台中显示。您可以查看 Development UI 上的测试输出。 |
| i | 切换基于检测的重新加载。使用这个选项不会影响测试,但不允许进行实时重新加载。这可用于避免在更改不会影响类结构时重新启动。 |
| l | 切换实时重新加载。使用这个选项不会影响测试,但您可以打开和关闭实时重新载入。 |
| s | 强制重启。使用此选项,您可以强制扫描已更改的文件和包含更改的实时重新加载。请注意,即使没有代码更改,且禁用了 live reload,应用程序仍会重启。 |