1.8. 启用并运行持续测试
使用红帽构建的 Quarkus,您可以在开发应用程序时持续测试代码更改。Quarkus 提供了一个连续的测试功能,您可以在进行并保存代码更改后立即运行。
运行持续测试时,测试会在启动应用程序后暂停。您可以在应用程序启动时立即恢复测试。Quarkus 应用程序决定运行哪个测试,以便测试仅在更改的代码中运行。
Quarkus 的持续测试功能会被默认启用。您可以通过将 src/main/resources/application.properties 文件中的 quarkus.test.continuous-testing 属性设置为 disabled 来禁用持续测试。
如果您之前禁用了持续测试并希望再次启用它,则必须在开始测试前重启 Quarkus 应用程序。
先决条件
- 您已编译了 Quarkus Getting Started 应用程序(或任何其他应用程序)。如需更多信息,请参阅 编译并启动红帽构建的 Quarkus Getting Started 项目。
流程
启动 Quarkus 应用程序。
如果您使用 code.quarkus.redhat.com 或 Quarkus CLI 创建 Getting Project 项目,则生成项目时会提供 Maven 包装器。在项目目录中输入以下命令:
./mvnw quarkus:dev
./mvnw quarkus:devCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您使用安装在您的机器上的 Apache Maven 创建 Getting Project 项目,请输入以下命令:
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 RESTEasy Reactive"。测试会失败,因为字符串已更改为 "Hello world"。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
要退出持续测试,请按键盘上的
Ctrl-C或 'q'。
如果再次将值更改回"hello",则测试会再次运行。
1.8.1. 控制持续测试的命令 复制链接链接已复制到粘贴板!
您可以使用键盘上的热键命令来控制用于持续测试的选项。要查看命令的完整列表,请在键盘中按 'h'。可用的选项如下:
| 命令 | 描述 |
|---|---|
| r | 重新运行所有测试。 |
| f | 重新运行失败的所有测试。 |
| b | 切换 'broken only' 模式。只有之前失败的测试才会运行,即使其他测试会受到您的代码更改的影响。如果您更改许多测试使用的代码,但您想要查看失败的测试,这个选项可能很有用。 |
| v | 输出详细描述了从上次测试运行到控制台的测试失败。如果在上次测试运行后有相当数量的控制台输出,则此选项可能很有用。 |
| p | 临时暂停正在运行的测试。如果您要进行大量代码更改,在完成更改前不想获得测试反馈,这可能很有用。 |
| q | 退出持续测试。 |
| o | 将测试输出输出到控制台。这默认是禁用的。当禁用测试输出时,输出会被过滤并保存,但不会在控制台中显示。您可以在 Development UI 中查看测试输出。 |
| i | 切换基于检测的重新加载。使用这个选项不会影响测试,但允许进行实时重新加载。如果更改不会影响类的结构,这可能会很有用。 |
| l | 切换实时重新加载。使用这个选项不会影响测试,但可让您打开和关闭实时重新加载。 |
| s | 强制重启。使用这个选项,您可以强制扫描更改的文件以及包含更改的实时重新加载。请注意,即使没有代码更改,并且禁用实时重新加载,应用仍会重新启动。 |