在 Debian 上使用 PhpStorm 搭建自动化测试环境
一 环境准备
- 安装 PHP 与调试扩展:sudo apt update && sudo apt install php php-xdebug
- 安装 Composer:curl -sS https://getcomposer.org/installer | php && sudo mv composer.phar /usr/local/bin/composer
- 在项目中引入测试框架(推荐作为开发依赖):composer require --dev phpunit/phpunit
- 安装并启动 PhpStorm(JetBrains 官网下载 tar.gz,解压至 /opt,执行安装脚本,或通过 snap 安装)
二 配置 PHPUnit 与运行器
- 配置 PHP 解释器:打开 PhpStorm → File → Settings → Languages & Frameworks → PHP,选择 CLI 解释器(常见路径如 /usr/bin/php)
- 配置测试框架:Settings → Languages & Frameworks → PHP → Test Frameworks,选择 PHPUnit,指定本地或 Composer 的 autoloader(如 vendor/autoload.php)
- 创建 phpunit.xml(项目根目录),示例:
- 运行器与引导:使用 PHPUnit 10+ 推荐通过 Composer 的 autoloader;如使用 PHAR,可设置 phpunit.phar 路径
- 基本结构:
- 引导:bootstrap=“vendor/autoload.php”
- 测试套件:./tests
- 覆盖率白名单:./src
- 运行与调试:在测试类/方法上右键 Run/Debug;或 Run → Edit Configurations → 新建 PHPUnit 配置,选择测试类型(如 All in directory → 指向 ./tests),保存后点击运行
三 覆盖率与调试
- 覆盖率:确保 phpunit.xml 的 白名单包含 ./src,在 PhpStorm 运行配置中勾选 Run with coverage,执行后在 Coverage 工具窗口查看报告
- 调试测试:在测试方法上设置断点,使用 Debug 运行;确保 Xdebug 已启用(见下一节),PhpStorm 将中断在断点处以便查看变量与调用栈
四 Xdebug 配置与常见问题
- php.ini(CLI 与/或 FPM,注意路径与版本匹配,如 /etc/php/8.2/cli/php.ini 与 /etc/php/8.2/fpm/php.ini):
- [Xdebug]
- zend_extension=xdebug.so
- xdebug.mode=debug
- xdebug.client_host=127.0.0.1
- xdebug.client_port=9003
- xdebug.idekey=PHPSTORM
- 重启服务:sudo systemctl restart php8.2-fpm(或 apache2)
- PhpStorm:Settings → PHP → Debug 设置端口 9003;Run → Edit Configurations → PHPUnit 勾选 Debug;需要 CLI 调试时,确保 Run/Debug 使用 CLI 解释器而非内置服务器
- 常见问题
- 找不到 PHPUnit:优先使用 Composer 的 vendor/bin/phpunit;或在 Test Frameworks 中手动设置 PHPUnit 运行器路径
- 覆盖率不显示:检查 phpunit.xml 的 是否覆盖 ./src,并确认以“Run with coverage”执行
- 断点不生效:核对 Xdebug 端口为 9003、IDE Key 为 PHPSTORM,并重启 PHP/FPM 与 PhpStorm 缓存无效后重试