温馨提示×

Debian下phpStorm如何进行单元测试

小樊
43
2025-11-15 16:21:39
栏目: 编程语言

在 Debian 上用 PhpStorm 做 PHPUnit 单元测试

一 环境准备

  • 安装 PHP 与调试扩展(Debian 常用命令,按你的版本调整包名):
    • sudo apt update && sudo apt install -y php php-cli php-xdebug
  • 安装 Composer(全局):
    • curl -sS https://getcomposer.org/installer | php
    • sudo mv composer.phar /usr/local/bin/composer
  • 安装 PHPUnit(推荐作为项目开发依赖,便于版本与团队一致):
    • 进入项目根目录执行:composer require --dev phpunit/phpunit
    • 如需全局命令也可:composer global require phpunit/phpunit,并把 $HOME/.composer/vendor/bin 加入 PATH
  • 验证安装:
    • php -v、phpunit --version、composer --version 均应输出版本号

二 在 PhpStorm 中配置 PHPUnit

  • 设置 PHP 解释器:File → Settings → Languages & Frameworks → PHP,选择或新增 CLI Interpreter(指向 /usr/bin/php),点击同步/验证,确保能解析到 Composer 的 vendor/autoload.php
  • 注册测试框架:Settings → Languages & Frameworks → PHP → Test Frameworks
    • 点击 + → PHPUnit Local,选择 Use Composer autoloader,指向项目根目录的 vendor/autoload.php
    • 如需使用 PHAR,可选择 Use PHPUnit PHAR 并指定 phpunit.phar 路径
  • 创建运行配置:Run → Edit Configurations → + → PHPUnit
    • Test kind 常用两种:
      • All in directory:Directory 选 tests
      • Class/Method:指定要运行的测试类或方法
    • 保存后即可点击工具栏绿色运行按钮执行

三 编写与运行测试

  • 生成测试:在目标类使用 Navigate → Go to Test(或 Ctrl+Shift+T / Cmd+Shift+T)创建测试,选择 PHPUnit 模板,自动生成 YourClassTest.php
  • 命名与断言示例:
    • 测试类继承 PHPUnit\Framework\TestCase
    • 测试方法为 public,以 test 开头,或用 @test 注解
    • 使用断言如 assertEqualsassertTrue
  • 运行与查看结果:
    • 单个测试类/方法:在测试文件内右键 Run ‘ClassNameTest’Run ‘testMethod’
    • 整个目录:使用前述运行配置(Test kind = All in directory)
    • 结果在 Run 工具窗口展示,可点击失败项定位到代码行

四 覆盖率与调试

  • 覆盖率:Run → Edit Configurations → 你的 PHPUnit 配置,勾选 Coverage,运行后在 Run 窗口或 Project 工具窗口查看覆盖率报告(行/分支覆盖)
  • 调试测试:在测试方法中设置断点,使用 Debug 运行;确保已安装并启用 Xdebug,PhpStorm 会在断点处中断,便于逐步排查

五 常见问题与排查

  • 找不到 PHPUnit:优先使用 Composer autoloader;若用 PHAR,确认路径与权限正确
  • 单个文件无法运行:确认运行配置为 Class/Method 并选择了正确类/方法,或改用目录级运行
  • 类/方法无法识别:在 PHP → Test Frameworks 中重新指向 vendor/autoload.php,并触发 Sync;必要时重启 IDE
  • 命令不存在:检查 phpunit 是否在 PATH,或改用项目内的 vendor/bin/phpunit
  • 断点不生效:确认已安装 Xdebug 并在 php.ini 中启用,且以 Debug 模式运行测试

0