测试
要设置处理测试的首选项,请转至首选项>Testing >General 。
下表概述了一般测试首选项。
设置 | 值 |
---|---|
Scan threads | 设置扫描测试时使用的工作线程数量。默认情况下,Qt Creator 使用可用逻辑 CPU 的四分之一。 |
Omit internal messages | 忽略内部信息。 |
Omit run configuration warnings | 省略推导配置的运行配置警告。 |
Limit result output | 默认情况下,测试结果输出最多显示 100,000 个字符。 |
Limit result description | 设置测试结果工具提示和说明的最大行数。 |
Open results when tests start | 测试开始时自动显示测试结果。 |
Open results when tests finish | 测试结束时自动显示测试结果。 |
Open results only for unsuccesfull test runs | 仅当测试结果中包含失败、致命或意外通过的测试时才显示测试结果。 |
Automatically scroll results | 视图自动滚动以显示最新结果。 |
Group results by application | 按用于运行测试的可执行路径对测试结果进行分组。如果你有多个测试可执行文件,并同时运行它们,这将非常有用。 |
Process arguments | 将参数传递给在运行配置中指定的测试可执行文件。这是一项试验性功能,可能会导致测试可执行文件执行失败。 |
Automatically run | 在成功构建当前项目后,自动运行所有或选定的测试。 |
Timeout | 设置执行测试用例的最长时间(以秒为单位)。 |
Reset Cached Choices | 有时,Qt Creator 无法推断要使用哪个可执行文件或运行配置。如果在尝试执行测试时,它反复要求您选择要运行的测试,您可以让它缓存您的选择,并在适当的地方使用它们。当您切换到另一个项目、关闭当前项目或选择此设置时,Qt Creator 会清除缓存。 |
Active Test Frameworks | 为Qt Creator 选择要处理的测试。为提高全面扫描测试的性能,请禁用您不使用的测试框架。 |
Group | 对活动测试框架的相关测试用例进行分组。默认情况下,Qt Creator 会对同一目录下的测试进行分组。 |
要覆盖当前项目的某些首选项,请访问Projects >Project Settings >Testing 。
Qt 测试
要为 Qt Test 设置首选项,请访问首选项>Testing > 。 Qt Test.
基准测试中的代码会被测量,为了获得准确的测量结果,可能还会重复测量几次。这取决于您在Benchmark Metrics 中选择的测量后端:
- 壁挂时间
- CPU tick 计数器
- 事件计数器
- Valgrind Callgrind
- Linux Perf
更多信息,请参阅创建基准。
下表总结了其他 Qt Test 偏好设置。
设置 | 值 |
---|---|
Disable crash handler while debugging | 允许调试器中断断言上的 Qt Test。 |
Use XML output | XML 输出可避免解析问题,但纯文本更易于阅读。 注意: 纯文本遗漏了某些信息,如持续时间。 |
Verbose benchmarks | 运行基准时接收冗长输出。 |
Log signals and slots | 在测试日志中记录有关信号和插槽的信息。 |
Limit warnings | 明确限制测试日志中警告的最大数量。如果完全不需要限制,则将限制设为 0。默认限制为 2000。 |
Check for derived Qt Quick tests | 检查Qt Quick 源自TestCase 的测试。 注意: 此功能相当昂贵,会大大增加扫描时间。 |
Find user-defined locations | 解析以下模式的报文并将其用作位置信息:file://filepath:line 其中":行 "为可选项。 注意: 如果在代码中使用这些模式,调试信息和其他信息的位置信息可能会有所改善,但可能会出现一些位置不正确和性能降低的情况。 |
谷歌测试
要指定运行 Google 测试的设置,请访问首选项>Testing >Google Test 。
下表总结了 Google 测试首选项。
设置 | 值 |
---|---|
Run disabled tests | 在测试运行期间执行禁用的测试。 |
Throw on failure | 将断言失败转化为 C++ 异常。 |
Break on failure while debugging | 将故障转化为调试器断点。 |
Repeat tests | 多次重复运行测试。 |
Iterations | 运行测试的次数。 |
Shuffle tests | 确保测试的独立性和可重复性,每次以不同的顺序运行测试。 |
Seed | 用于初始化随机化器的种子。值 0 会根据当前时间戳生成一个种子。 |
Group mode | 使用GTest Filter 对 Google 测试进行分组。 |
Active filter | 要使用的 GTest 过滤器。 |
有关 GTest 过滤器的更多信息,请参阅运行测试子集。
Boost 测试
要指定运行 Boost 测试的设置,请访问首选项>Testing >Boost Test 。
下表总结了 Boost 测试首选项。
设置 | 值 |
---|---|
Log format | 测试报告中记录的事件类型。 |
Report level | 测试结果报告的冗长程度。如果不需要报告,请选择No 。 |
Randomize | 以随机顺序执行测试。 |
Seed | 用于初始化随机化器的种子。值 0 表示无随机化,值 1 使用当前时间,任何其他值都会生成随机种子。 |
Catch system errors | 捕捉或忽略系统错误 |
Floating point exceptions | 检测浮点异常陷阱 |
Detect memory leaks | 检测内存泄漏 |
Catch2 测试
要指定运行 Catch2 测试的设置,请访问首选项>Testing >Catch Test 。
下表总结了 Catch2 测试首选项。
设置 | 值 |
---|---|
Show success | 同时显示成功的表达式。默认情况下,Catch2 只打印失败的表达式。 |
Break on failure while debugging | 将失败变成调试器断点。 |
Skip throwing assertions | 跳过测试已抛出异常的断言。 |
Visualize whitespace | 将空白转化为转义序列 |
Abort after | 在方框内指定的失败次数后终止测试。 |
Benchmark samples | 运行基准时收集的样本数。 |
Benchmark resamples | 基准测试后用于统计引导的重采样数。 |
Benchmark confidence interval | 统计引导的置信区间。 |
Benchmark warmup time | 基准测试开始前每次测试的预热时间。 |
Disable analysis | 禁用统计分析和引导。 |
基于 CTest 的测试
要指定运行基于 CTest 的测试的设置,请转至首选项>Testing >CTest 。
下表总结了 CTest 首选项。
设置 | 值 |
---|---|
Output on failure | 如果测试失败,显示测试特定输出。与 CTest 默认设置相反,此设置默认为打开。 |
Schedule random | 以随机顺序执行测试。 |
Stop on failure | 在第一个测试失败时自动停止测试执行。 |
Output mode, | CTest 输出的冗长程度。 注意: 该设置只影响文本显示器上的输出。 |
Repeat tests | 重新运行测试,由Repetition mode 决定。在Count 中设置重复测试的最大次数。 |
Run in Parallel | 使用指定的Jobs 并行运行测试。在Test load 中,限制并行执行。如果新测试会导致 CPU 负载超过Threshold 中设置的阈值,则 CTest 不会启动新测试。 |
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.