Coco 测试引擎驱动程序

概述

`cocotestengine` 程序通过“驱动”目标程序来生成测试数据,并根据这些数据运行测试。如果在测试执行或发现过程中,目标程序崩溃,`cocotestengine` 将重新启动它并继续执行。

`cocotestengine` 在三种不同的模式中工作:

  • 发现模式:此模式通过 `--discover` 标志启用。

    在发现模式下,`cocotestengine` 试图找到新的测试。如果存在包含测试数据的数据文件,它将作为起点使用这些数据。

    如果新找到的数据行比现有行更有效(覆盖更多代码),且现有行未通过验证,则可能丢弃现有行以使数据集保持最小。

  • 测试模式:此模式在没有提供 `--discover` 或 `--learn` 时启用。

    在测试模式下,`cocotestengine` 从数据文件读取测试数据,运行它们,并报告成功测试的数量以及失败的测试。

    在测试模式下,可以运行目标程序中实现的测试,或者运行单个测试。

  • 学习模式:此模式通过 `--learn` 标志启用。

    在学习模式下,驱动程序运行测试的所有行,但它不会检查输出的值是否与数据文件中的值一致,而是将其测试运行输出存储在数据文件中。

    对于以前已通过验证的行,如果输出值不同,则将该行的验证标志重置为 false。

    对于目标程序中的单个测试或所有测试,可能启用了学习模式。

总结

cocotestengine -e <target> [-d <directory>] [-t <test>] [--learn | --discover] [options]
cocotestengine -e <target> --list
cocotestengine -h

返回值

返回值意义
0无错误
64无效的命令行参数
65无效的数据文件
66测试失败
67测试崩溃
68功能未实现
69目标中发生错误

如果同时发生崩溃和测试失败,则优先考虑崩溃。

输出文件

在每次测试、学习或发现运行结束时,目标程序将写入一个[code translate="no">.csexe文件。如果文件已经存在,新数据会附加到它上面。

结束程序。[a class="plink" href="#ending-the-program" title="直接链接到此标题"]

如果发现过程太长,可以按Ctrl-C。此时,驱动程序将停止发现并将已发现的数据写入数据文件。

命令行参数[a class="plink" href="#command-line-arguments" title="直接链接到此标题"]

常规选项[a class="plink" href="#general-options" title="直接链接到此标题"]

  • [code translate="no">-h | [code translate="no">--help]: 打印帮助信息并退出。
  • [code translate="no">-e <路径>]: 设置目标可执行文件的路径。

    如果没有设置[code translate="no">--cs-learn和[code translate="no">--cs-discover,则驱动程序为所有支持的测试运行所有行,然后打印结果摘要。

  • [code translate="no">-d <路径>] | [code translate="no">--data-dir=<路径>]: 设置包含数据和配置文件的目录的路径。

    默认值是驱动程序的当前工作目录。

  • [code translate="no">-t <字符串>]: 设置要执行的测试的名称。

    如果没有设置[code translate="no">--cs-learn和[code translate="no">--cs-discover,则驱动程序为此测试运行所有行并打印结果摘要。

  • [code translate="no">-l | [code translate="no">--list]: 打印目标程序支持的所有测试的列表。
  • [code translate="no">-v | [code translate="no">--verbose]: 启用详细模式。
  • [code translate="no">--learn]: 启用学习模式。

    [code translate="no">-t]选项必须设置。然后驱动程序为此测试运行所有行,并将每行的测试输出值存储在数据文件中。

  • [code translate="no">--discover]: 启用发现模式。

    [code translate="no">-t]选项必须设置。然后驱动程序为此测试运行测试数据发现。

发现模式的选项[a class="plink" href="#options-for-discovery-mode" title="直接链接到此标题"]

以下选项仅适用于发现模式。

  • [code translate="no">--max-tries=<整数>]: 测试生成期间尝试的最大行数。

    默认值是10000。

  • [code translate="no">--max-time=<整数>]: 发现的最大时间。

    0的值表示无限制时间。其他值在秒后设置超时,在此之后发现停止。默认值是0。

  • [code translate="no">--max-coverage=<浮点数>]: 发现停止时的覆盖率。

    如果值为正且已达到的测试覆盖范围超过该值,则发现停止。负值禁用此检查。默认为-1。

  • [code translate="no">--update=<整数>]: 状态更新之间的秒延迟。

    如果值为正,则指定驱动程序打印当前达到的发现结果的简单总结的时间周期。0的值禁用此功能。

    总结包含到目前为止发现的数据行数及其总覆盖率。

  • [code translate="no">--save-interval=<整数>]: 保存发现的测试之间的秒间隔。

    默认值是60。0的值禁用保存。

  • [code translate="no">--seed=<整数>]: 用于测试数据生成的随机数生成器的种子。

    默认情况下,使用自Epoch以来的秒数。

针对驱动程序的微调选项[a class="plink" href="#options-for-fine-tuning-the-driver-program" title="直接链接到此标题"]

以下选项很少需要。

  • [code translate="no">--timeout=<整数>]: 设置与目标通信的超时。

    值以毫秒为单位进行测量,默认值为300000,即5分钟。如果驱动程序与目标通信并在此时间之后等待答案,则目标以失败结束。

  • --batch-size 设置驱动程序在一次批量中发送到目标的行数。

    默认值为100。该数字对驱动程序与目标之间数据传输的效率有一定影响。

Coco v7.2.0©2024 The Qt Company Ltd.
Qt及其相关标志是芬兰及/或世界各国The Qt Company Ltd.的商标。所有其他商标均为其各自所有者的财产。