本页内容

构建并运行测试

要构建并运行测试:

  1. 打开包含测试的项目。
  2. 在“Tests ”视图中,选择要运行的测试。
  3. 在“Test Results ”视图中,选择:
    • “运行”按钮 (Run All Tests) 以运行所有测试。
    • 运行所选测试 (Run Selected Tests) 以运行所选测试。
    • 运行失败的测试 (Run Failed Tests) 以重新运行上次运行中失败的测试。根据框架的不同,如果无法区分或完全处理该测试,此操作可能会选中更多测试。
    • 对当前文件运行测试 (Run Tests for Current File) 用于运行代码编辑器中当前打开的文件中的测试。

默认情况下,Qt Creator 会在部署和运行项目之前先进行构建。若要运行所有测试而无需再次构建和部署,请在上下文菜单中选择“Run All Tests Without Deployment ”。若要运行所选测试而不进行部署,请选择“Run Selected Tests Without Deployment ”。

您还可以通过“Tests ”视图中的右键菜单,或依次选择“Tools ” > “Tests ”来运行测试。

注意:如果您 同时启用了基于构建系统的测试和基于代码的测试,在选择“Run All Tests ”或“Run Selected Tests ”时,可能会导致测试被重复执行一次。这种情况通常发生在测试既能被基于代码的测试框架识别,又在构建系统中注册为测试时。

选择要运行的测试

Tests ”视图会显示当前项目中针对当前活动测试框架找到的所有测试。请选择要运行的测试用例。

测试视图

如果“Qt Quick ”中的测试用例没有名称,则在列表中会标记为“Unnamed ”。Run All Tests 会执行这些未命名的测试用例。您无法选择或取消选择它们。

Qt Creator 当您打开项目时,系统会扫描项目中的测试;当您编辑测试时,系统会更新当前活动测试框架的测试列表。要刷新视图,请在上下文菜单中选择“Rescan Tests ”。

要在“Tests ”视图中显示或隐藏初始化、清理或数据函数,请选择“过滤器测试树 ”(Filter Test Tree ),然后选择“Show Init and Cleanup Functions ”或“Show Data Functions ”。双击列表中的函数可在代码编辑器中打开其源代码。

Tests ”视图按字母顺序(不区分大小写)列出测试用例。若要按其在源代码中出现的顺序列出,请选择“自然排序 ”(Sort Naturally )。

要筛选测试列表,请在筛选字段中输入搜索词。要隐藏测试筛选器,请选择“过滤器测试树 ”(Filter Test Tree ),然后清除“Show Text Filter ”选项。

从代码编辑器运行和调试测试

您可以在代码编辑器中当前打开的文件中运行和调试测试。要运行打开文件中的所有测试,请转至Tools >Tests >Run Tests for Current File

注意: 适用于 基于代码的测试框架。

若要运行当前打开文件中选中的测试,请在上下文菜单中选择“Run Test Under Cursor ”。

注意: 适用于 基于代码的测试框架。

要调试当前选中的测试,请在上下文菜单中选择“Debug Test Under Cursor ”。

注意: 对于基于构建系统的测试,此功能的可用性 取决于构建系统工具的能力。

从定位器运行 CTest 测试

您可以使用“ct ”定位器过滤器来运行 CTest 测试。

启用基于构建系统的测试

默认情况下,Qt Creator 不处理基于构建系统的测试,以避免与基于代码的解析器发生冲突。要启用基于构建系统的测试,请在“Preferences ” > “Testing ” > “General ”中选择相应的测试工具。

基于构建系统的测试通常检测速度更快,因为这通常不涉及扫描或解析。而使用基于代码的测试时,测试树中的信息通常更为详细。

如果您同时启用了基于代码的测试和基于构建系统的测试,测试树中可能会出现测试重复的情况。

查找Qt Test 数据标签

要定位Qt Test 数据标签:

  1. Ctrl+K(macOS 上为Cmd+K)激活定位器。
  2. 输入qdt ,后跟一个空格。

另请参阅 《如何:测试》、《选择构建系统》和《测试》。

Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.