在 Ubuntu 上使用 PhpStorm 进行 PHPUnit 单元测试
一 环境准备
- 安装 PHP 与 Composer(示例为 Ubuntu 20.04+):
- sudo apt update && sudo apt install -y php-cli php-xdebug composer
- 在项目根目录安装 PHPUnit(推荐作为开发依赖):
- composer require --dev phpunit/phpunit
- 创建基础目录与示例测试:
- mkdir -p tests
- 示例文件 tests/ExampleTest.php:
- 说明:PhpStorm 已内置对 PHPUnit 的支持,可直接在 IDE 内运行与调试测试。
二 在 PhpStorm 中配置 PHP 与 PHPUnit
- 配置 CLI 解释器:
- 打开 File > Settings > Languages & Frameworks > PHP > CLI Interpreter,点击 +,选择 Add Local,指定 PHP 可执行文件路径(如 /usr/bin/php)。
- 配置测试框架:
- 打开 Settings > Languages & Frameworks > PHP > Test Frameworks,点击 +,选择 PHPUnit Local。
- 选择 Use Composer autoloader,指向项目根目录的 vendor/autoload.php;点击 Validate 校验,看到 “PHPUnit has been successfully configured” 即完成。
- 可选 使用 WSL 或 Docker:
- WSL:在 CLI Interpreter 选择 From Docker, Vagrant, VM, WSL, Remote… > WSL,按向导选择发行版与 PHP 路径;随后在 PHPUnit 配置中同样选择 PHPUnit by Remote Interpreter。
- Docker:选择 Docker,指定镜像后在 PHPUnit 中选择 PHPUnit by Remote Interpreter。
三 运行与调试测试
- 运行测试:
- 在 Project 视图或编辑器中右键测试类/方法,选择 Run ‘ClassName’ 或 Run ‘testMethod’;结果在 Run 工具窗口展示(通过/失败、断言信息、堆栈等)。
- 调试测试:
- 在测试代码中设置断点,右键选择 Debug ‘ClassName’/‘testMethod’;结合 Xdebug 可单步、观察变量与表达式。
- 覆盖率:
- 使用工具栏的 Run ‘ClassName’ with Coverage 运行,可生成并查看 代码覆盖率 报告。
四 常用配置与排错
- 使用 phpunit.xml 管理配置(项目根目录):
- 示例 phpunit.xml:
- 说明:该文件用于指定 bootstrap、测试目录、白名单 等;PhpStorm 会自动识别并在运行测试时使用。
- Xdebug 3 配置要点(如计划使用覆盖率/断点调试):
- 在 CLI 使用的 php.ini(如 /etc/php/8.1/cli/php.ini)添加:
- zend_extension=xdebug.so
- xdebug.mode=debug
- xdebug.start_with_request=yes
- xdebug.client_host=127.0.0.1
- xdebug.client_port=9003
- 在 PhpStorm 的 Settings > PHP > Debug 确认调试端口为 9003,并确保 CLI 与 Web 环境使用一致的 Xdebug 配置。
- 常见问题排查:
- Validate 失败:确认 vendor/autoload.php 存在且 PHPUnit 已安装到 vendor/;如使用全局 PHPUnit,需改为 PHPUnit by Remote Interpreter 或安装到项目本地。
- 找不到 PHP 可执行文件:在 CLI Interpreter 中手动定位 /usr/bin/php 或使用 WSL/Docker 解释器。
- 覆盖率或断点无效:检查 Xdebug 是否启用、端口是否被占用、运行配置是否选择了正确的解释器与测试框架。