目录

PHPUnit 是一个功能强大的 PHP 单元测试框架,提供了多种命令行选项和参数,用于灵活地执行测试、生成报告、过滤测试用例等。以下是一些常用的 PHPUnit 执行指令及其参数:


1. 基本执行指令

运行所有测试

phpunit
  • 默认情况下,PHPUnit 会在当前目录及其子目录中查找测试文件(以*Test.php结尾的文件)并执行。

指定测试文件或目录

phpunit tests/
phpunit tests/MyTest.php
  • 可以指定单个测试文件或整个测试目录运行测试。

2. 测试过滤

按测试类或方法过滤

phpunit --filter MyTest
phpunit --filter testMyMethod
  • --filter参数可以根据测试类名或方法名过滤测试用例。

按注解过滤

phpunit --group group_name
  • 如果测试方法或类中使用了@group注解,可以通过--group参数指定运行特定组的测试。

3. 测试覆盖率报告

生成代码覆盖率报告

phpunit --coverage-html coverage
phpunit --coverage-text
phpunit --coverage-clover coverage.xml
  • --coverage-html:生成 HTML 格式的覆盖率报告。
  • --coverage-text:生成文本格式的覆盖率报告。
  • --coverage-clover:生成 Clover XML 格式的覆盖率报告。

排除文件或目录

phpunit --coverage-html coverage --whitelist src/ --blacklist tests/
  • --whitelist:指定包含在覆盖率分析中的文件或目录。
  • --blacklist:指定排除在覆盖率分析中的文件或目录。

4. 测试配置

使用配置文件

phpunit --configuration phpunit.xml
phpunit -c phpunit.xml
  • 使用phpunit.xml配置文件来定义测试环境、过滤器、覆盖率等设置。

设置测试套件

phpunit --testsuite MyTestSuite
  • 如果配置文件中定义了多个测试套件,可以通过--testsuite参数指定运行某个套件。

5. 性能和调试

重复运行测试

phpunit --repeat 10
  • 重复运行测试指定次数。

显示测试执行时间

phpunit --testdox --stop-on-failure
  • --testdox:以更易读的格式显示测试结果。
  • --stop-on-failure:在遇到第一个失败的测试时停止执行。

显示详细输出

phpunit -v
  • -v:显示更详细的测试执行信息。

6. 测试数据

使用数据提供者

phpunit --filter testMyMethodWithDataProvider
  • 如果测试方法使用了@dataProvider注解,可以通过--filter参数指定运行特定数据集的测试。

7. 其他常用参数

生成日志文件

phpunit --log-junit results.xml
  • --log-junit:生成 JUnit 格式的测试结果日志文件。

设置测试环境变量

phpunit --define APP_ENV=testing
  • --define:设置环境变量,例如APP_ENV

排除测试

phpunit --exclude-group group_name
  • --exclude-group:排除指定组的测试。

8. 示例:完整的命令行指令

以下是一个完整的 PHPUnit 命令行指令示例,结合了多种参数:

phpunit --configuration phpunit.xml --filter testMyMethod --group my_group --coverage-html coverage --log-junit results.xml

9. 常见快捷键

  • -c:等同于--configuration
  • -d:等同于--define
  • -v:等同于--verbose

通过这些命令行参数,PHPUnit 可以灵活地满足各种测试需求,从简单的测试运行到复杂的覆盖率分析和测试报告生成。


9ong@TsingChan 文章内容由 AI 辅助生成。