在开始前,需确保CentOS系统已安装PHP基础环境及PHPUnit依赖,并配置好Composer(PHP依赖管理工具)。
sudo yum install php php-cli php-mbstring php-xml php-zip php-pdo php-mysqlnd -y
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
PHPUnit是PHP单元测试的核心框架,推荐通过Composer本地安装(项目级依赖)或PECL全局安装(系统级依赖)。
vendor目录:composer require --dev phpunit/phpunit
此方式可避免全局依赖冲突,适合团队协作。sudo pecl install phpunit/phpunit
sudo echo "extension=phpunit.so" > /etc/php.d/phpunit.ini
sudo systemctl restart httpd # 重启Web服务器(Apache/Nginx)
PhpStorm需识别PHP环境和PHPUnit框架,才能正确运行测试。
File → Settings(或PhpStorm → Preferences,macOS)→ Languages & Frameworks → PHP。CLI Interpreter右侧齿轮图标→Add,选择系统PHP可执行文件(通常为/usr/bin/php),点击OK保存。Settings窗口中,导航至Tools → PHP → Testing。
PHPUnit作为默认测试框架;Use Composer autoloader,设置Path to script为项目vendor/autoload.php(如/path/to/project/vendor/autoload.php);PHPUnit library,设置路径为PECL安装的PHPUnit路径(如/usr/lib/php/PHPUnit)。OK完成配置。在项目中创建测试目录(如tests),并为需测试的类编写测试类。
/path/to/project
├── src/ # 源代码目录(如MyClass.php)
└── tests/ # 测试目录(如MyClassTest.php)
src/MyClass.php有一个add方法,对应的测试类如下:<?php
namespace Tests; // 命名空间建议与src目录对应
use PHPUnit\Framework\TestCase;
use App\MyClass; // 引入待测试类(根据实际路径调整)
class MyClassTest extends TestCase
{
public function testAdd()
{
$myClass = new MyClass();
$result = $myClass->add(2, 3);
$this->assertEquals(5, $result); // 断言预期结果
}
}
PhpStorm提供两种方式运行测试:
MyClassTest.php)或测试方法,选择Run 'PHPUnit on MyClassTest'(或Debug进行调试)。Run → Edit Configurations,点击+→PHPUnit,设置:
Test kind:选择All in directory;Directory:选择项目tests目录;OK保存配置,然后点击工具栏绿色三角形按钮运行所有测试。Run窗口,包含通过/失败状态、失败详情(如断言错误、异常堆栈),点击失败项可快速定位代码位置。@dataProvider注解,为测试方法提供多组输入输出数据,提升测试覆盖率。$this->createMock()创建模拟对象,隔离外部依赖(如数据库、API),专注于被测逻辑。Debug 'PHPUnit on XXX',通过PhpStorm调试器逐步执行代码,查看变量值。通过以上步骤,即可在CentOS系统上使用PhpStorm高效完成PHP单元测试,覆盖从环境搭建到测试执行的完整流程。