CLI API 参考

在 Pest 文档的前几章中,我们介绍了 Pest 中可用的众多 CLI 选项。此外,Pest 还提供了许多其他可能有用的选项。为了方便您使用,下面提供了完整的 CLI API 参考。

配置

  • --init :初始化标准 Pest 配置。
  • --bootstrap <file> 测试运行之前包含的 PHP 脚本。
  • -c|--configuration <file> :从 XML 文件读取配置。
  • --no-configuration :忽略默认配置文件(phpunit.xml)。
  • --extension <class> :使用引导程序注册测试运行器扩展
  • --no-extensions :不加载 PHPUnit 扩展。
  • --include-path <path(s)> :在 PHP 的 include_path 前面添加给定的路径。
  • -d <key[=value]> :设置 php.ini 值。
  • --cache-directory <dir> :指定缓存目录。
  • --generate-configuration :使用建议的设置生成配置文件。
  • --migrate-configuration :将配置文件迁移到当前格式。
  • --generate-baseline <file> :生成问题基线。
  • --use-baseline <file> :使用基线忽略问题。
  • --ignore-baseline :不要使用基线来忽略问题。
  • --test-directory :指定包含 Pest.php、TestCase.php、辅助程序和测试的测试目录。默认值:tests

选择

  • --bail :第一次测试未通过时停止执行。
  • --ci :忽略使用重点测试 ->only() 并运行整个测试套件。
  • --todos :将待办事项列表输出到标准输出。
  • --notes :输出到带有注释的标准输出测试。
  • --issue :将具有给定问题编号的测试输出到标准输出。
  • --pr :使用给定的拉取请求编号输出到标准输出测试。
  • --pull-request :使用给定的拉取请求编号输出到标准输出测试(别名 --pr )。
  • --retry :首先运行未通过的测试,并在第一次出现错误或失败时停止执行。
  • --list-suites 列出可用的测试套件。
  • --testsuite <name> :仅运行指定测试套件中的测试。
  • --exclude-testsuite <name> :从指定的测试套件中排除测试。
  • --list-groups :列出可用的测试组。
  • --group <name> :仅运行来自指定组的测试。
  • --exclude-group <name> :从指定组中排除测试。
  • --covers <name> :仅运行旨在覆盖的测试 <name>
  • --uses <name> :仅运行打算使用的测试 <name>
  • --requires-php-extension <name> :仅运行需要 PHP 扩展的测试
  • --list-test-files :列出可用的测试文件。
  • --list-tests :列出可用的测试。
  • --list-tests-xml <file> :以 XML 格式列出可用的测试。
  • --filter <pattern> :过滤要运行的测试
  • --exclude-filter <pattern> :排除指定过滤模式的测试。
  • --test-suffix <suffixes> :仅在指定后缀的文件中搜索测试。默认值:Test.php、.phpt

执行

  • --parallel 并行运行测试。
  • --update-snapshots :使用“toMatchSnapshot”期望更新测试的快照。
  • --globals-backup :为每个测试备份和恢复 $GLOBALS。
  • --static-backup :备份和恢复每个测试的静态属性。
  • --strict-coverage :严格控制代码覆盖率元数据。
  • --strict-global-state :严格控制全局状态的改变。
  • --disallow-test-output :测试时要严格控制输出。
  • --enforce-time-limit :根据测试规模强制执行时间限制。
  • --default-time-limit <sec> :未声明大小的测试的超时时间(秒)。
  • --dont-report-useless-tests :不要报告没有测试任何东西的测试。
  • --stop-on-defect :第一次测试未通过时停止执行。
  • --stop-on-error :第一次出现错误时停止执行。
  • --stop-on-failure :第一次出现错误或失败时停止执行。
  • --stop-on-warning :第一次警告时停止执行。
  • --stop-on-risky :第一次有风险的测试后停止执行。
  • --stop-on-deprecation :在第一次触发弃用的测试后停止。
  • --stop-on-notice :第一次触发通知的测试后停止。
  • --stop-on-skipped :跳过第一个测试后停止执行。
  • --stop-on-incomplete :第一次测试不完整时停止执行。
  • --fail-on-empty-test-suite :当未运行任何测试时,使用 shell 退出代码发出信号失败。
  • --fail-on-warning :将出现警告的测试视为失败。
  • --fail-on-risky :将有风险的测试视为失败。
  • --fail-on-deprecation :当触发弃用时,使用 shell 退出代码发出信号失败。
  • --fail-on-phpunit-deprecation :当触发 PHPUnit 弃用时,使用 shell 退出代码发出信号失败。
  • --fail-on-notice :当触发通知时,使用 shell 退出代码发出信号失败。
  • --fail-on-skipped :将跳过的测试视为失败。
  • --fail-on-incomplete :当测试被标记为未完成时,使用 shell 退出代码发出信号失败。
  • --cache-result :将测试结果写入缓存文件。
  • --do-not-cache-result :不将测试结果写入缓存文件
  • --order-by <order> :按顺序运行测试:默认|缺陷|依赖|持续时间|不依赖|随机|反向|大小。
  • --random-order-seed <N> :以随机顺序运行测试时使用指定的随机种子

报告

  • --colors <flag> :在输出中使用颜色(“从不”、“自动”或“始终”)。
  • --columns <n> :用于进度输出的列数。
  • --columns max :使用最大列数来输出进度。
  • --stderr :写入 STDERR 而不是 STDOUT。
  • --no-progress :禁用测试执行进度的输出。
  • --no-results :禁用测试结果的输出。
  • --no-output :禁用所有输出。
  • --display-incomplete :显示未完成测试的详细信息。
  • --display-skipped :显示跳过的测试的详细信息。
  • --display-deprecations :显示测试触发的弃用的详细信息。
  • --display-phpunit-deprecations :显示 PHPUnit 弃用的详细信息。
  • --display-errors :显示测试触发的错误的详细信息。
  • --display-notices :显示测试触发的通知的详细信息。
  • --display-warnings :显示测试触发的警告的详细信息。
  • --reverse-list :以相反的顺序打印缺陷。
  • --teamcity :用 TeamCity 格式替换默认的进度和结果输出。
  • --testdox :用 TestDox 格式替换默认结果输出
  • --testdox-summary :对出现错误、失败或问题的测试重复 TestDox 输出。
  • --debug :用调试信息替换默认的进度和结果输出。
  • --compact :用紧凑格式替换默认结果输出

日志记录

  • --log-junit <file> :将测试结果以JUnit XML格式写入文件。
  • --log-teamcity <file> :将测试结果以TeamCity格式写入文件。
  • --testdox-html <file> :将测试结果以TestDox格式(HTML)写入文件。
  • --testdox-text <file> :将测试结果以TestDox格式(纯文本)写入文件。
  • --log-events-text <file> :将事件以纯文本形式传输到文件。
  • --log-events-verbose-text <file> :将事件以纯文本(包含遥测信息)的形式传输到文件。
  • --no-logging :忽略 XML 配置文件中配置的日志记录

代码覆盖率

  • --coverage :生成代码覆盖率报告并输出到标准输出。
  • --coverage --min=<value> :设定最低要求的覆盖率百分比,如果不满足则失败。
  • --coverage-clover <file> :将 Clover XML 格式的代码覆盖率报告写入文件。
  • --coverage-cobertura <file> :将Cobertura XML格式的代码覆盖率报告写入文件。
  • --coverage-crap4j <file> :将Crap4J XML格式的代码覆盖率报告写入文件。
  • --coverage-html <dir> :将HTML格式的代码覆盖率报告写入目录。
  • --coverage-php <file> :将序列化的代码覆盖率数据写入文件。
  • --coverage-text=<file> :将代码覆盖率报告以文本格式写入文件[默认:标准输出]。
  • --only-summary-for-coverage-text :文本格式的代码覆盖率报告选项:仅显示摘要。
  • --show-uncovered-for-coverage-text :文本格式的代码覆盖率报告选项:显示未发现的文件。
  • --coverage-xml <dir> :将XML格式的代码覆盖率报告写入目录。
  • --warm-coverage-cache :热静态分析缓存。
  • --coverage-filter <dir> : 包括 <dir> :在代码覆盖率报告中。
  • --path-coverage :除了线路覆盖率之外,还报告路径覆盖率。
  • --disable-coverage-ignore :禁用忽略代码覆盖率的元数据。
  • --no-coverage :忽略 XML 配置文件中配置的代码覆盖率报告

突变测试

  • --mutate :运行突变测试,以了解测试的质量。
  • --mutate --parallel :并行运行突变测试。
  • --mutate --min :设定所需的最低突变分数,如果不满足则失败。
  • --mutate --id :仅运行指定 ID 的突变。例如:--id=ecb35ab30ffd3491。请注意,您需要提供与原始运行相同的选项。
  • --mutate --covered-only :仅为测试涵盖的类生成突变。
  • --mutate --bail :在第一次未经测试或未发现的突变时停止突变测试执行。
  • --mutate --class :为给定的类生成突变。例如 --class=App\Models。
  • --mutate --ignore :生成突变时忽略给定的类。例如 --ignore=App\Http\Requests。
  • --mutate --clear-cache :清除变异缓存。
  • --mutate --no-cache :清除变异缓存。
  • --mutate --ignore-min-score-on-zero-mutations :当没有突变时,忽略最低分数要求。
  • --mutate --covered-only :仅为测试涵盖的类生成突变。
  • --mutate --everything :为所有类别生成突变,即使它们未被测试覆盖。
  • --mutate --profile :将最慢的十个突变输出到标准输出。
  • --mutate --retry :首先运行未经测试或未发现的突变,并在第一次出现错误或失败时停止执行。
  • --mutate --stop-on-uncovered :在第一个未经测试的突变时停止突变测试执行。
  • --mutate --stop-on-untested :在第一个未经测试的突变时停止突变测试执行。

分析

  • --profile :将最慢的十个测试输出到标准输出

在本章中,您找到了 Pest 提供的完整 CLI 选项列表。在后续文档中,我们将探讨测试依赖项的主题: 测试依赖项