在 Linux 上使用 PhpStorm 进行单元测试
一 环境准备
- 安装并启动 PHPStorm(Linux 版),确保系统已安装 PHP CLI。
- 使用 Composer 安装测试依赖(推荐):在项目根目录执行
- 安装 PHPUnit:composer require --dev phpunit/phpunit
- 安装 Codeception(如使用):composer require --dev codeception/codeception
- 创建基础配置 phpunit.xml(置于项目根目录),便于批量运行与覆盖率:
- 示例:
- Ubuntu:
- 安装:sudo apt-get update && sudo apt-get install phpunit
- Xdebug(覆盖率/调试):sudo apt-get install php-xdebug
- CentOS:
- 安装工具链:sudo yum install php-pdo php-mbstring php-xml
- Composer:curl -sS https://getcomposer.org/installer | php && sudo mv composer.phar /usr/local/bin/composer
以上步骤完成后,项目具备运行 PHPUnit 所需依赖与基础配置。
二 在 PhpStorm 中配置 PHP 与测试框架
- 配置 PHP 解释器:进入 File > Settings > Languages & Frameworks > PHP,添加 CLI 解释器(如 /usr/bin/php),确认版本与扩展正常。
- 配置 Test Frameworks:进入 PHP > Test Frameworks,选择 PHPUnit。
- 方式 A(推荐,Composer):选择 Use Composer autoloader,指向项目 vendor/autoload.php。
- 方式 B(PHAR/全局):选择 Use custom autoloader,指定 phpunit.phar 路径;或选择 Use system PHPUnit(若系统已全局安装)。
- 关联 phpunit.xml:在测试框架设置中指定 Configuration file(项目根目录的 phpunit.xml),用于套件与覆盖率。
- 覆盖率(可选):确保已安装 Xdebug,在 Settings > PHP > Debug 启用 Xdebug,用于断点调试与覆盖率统计。
三 编写与运行测试
- 创建测试:在项目中建立 tests/ 目录,新增测试类,例如 ExampleTest.php:
- 示例:
- PHPUnit:
- 文件:tests/ExampleTest.php
- 代码:
- Codeception(如使用):按模块生成测试并执行。
- 运行与调试:在编辑器中对测试类/方法右键选择 Run ‘ExampleTest’ 或 Debug ‘ExampleTest’;结果在 Run 工具窗口展示。也可使用工具栏运行整个测试类或测试套件。
四 覆盖率与常见问题
- 覆盖率:在 Run/Debug Configurations 中勾选 Coverage,运行后在 Run 窗口或 Project 视图查看覆盖率报告;需确保 Xdebug 已启用。
- 常见问题排查:
- 类找不到/自动加载失败:优先使用 Composer autoloader(vendor/autoload.php),确保依赖已安装(composer install)。
- 解释器无效:在 PHP Interpreter 页面点击同步/验证,确认 php -v 与扩展正常。
- 全局命令找不到:若使用系统级 phpunit,确认 /usr/local/bin/phpunit 在 PATH 中,或改用 Composer 方案。
- 远程/容器环境:在 Settings > PHP > Servers 配置 path mappings,确保本地与远程路径一致。