Ubuntu下phpstorm如何进行单元测试
在Ubuntu上使用PhpStorm做单元测试,先安装PHP与Composer,再通过Composer以项目依赖安装PHPUnit,然后创建phpunit.xml并配置PhpStorm的测试框架及解释器,最后编写继承TestCase且方法以test开头的测试用例。
1. 准备工作:安装PHP和Composer
在Ubuntu上用PhpStorm跑单元测试,第一步自然是要把环境和工具铺好。PHP版本建议至少7.4以上,Composer作为PHP的依赖管理工具,也是必不可少的。安装命令很常规:

sudo apt update
sudo apt install php php-cli php-mbstring php-xml composer
装完别急着走,用php -v和composer -V验证一下版本,确保安装成功。这一步虽然基础,但很多新手就是在这里踩了坑——版本不对或者缺少扩展,后面跑测试时各种报错。
2. 安装PHPUnit
PHPUnit是目前PHP生态中最主流的单元测试框架。推荐通过Composer以项目依赖的形式安装——这样每个项目可以独立管理自己的PHPUnit版本,不会污染全局环境:
cd /path/to/your/project
# 进入项目根目录
composer require --dev phpunit/phpunit
安装完成后,可执行文件会乖乖待在vendor/bin/phpunit里。很多人喜欢全局安装,但在实际项目中,项目级安装才是最佳实践,尤其是团队协作时,版本统一极其重要。
3. 配置PHPUnit
在项目根目录创建一个phpunit.xml配置文件,告诉PHPUnit测试范围、bootstrap文件以及代码覆盖率白名单。下面是一个标准示例:
./tests
./src
这个配置会自动加载Composer的自动加载文件(vendor/autoload.php),并且只扫描tests目录下以Test.php结尾的文件。如果你有代码覆盖率需求,白名单部分还可以按实际情况调整目录。
4. 配置PhpStorm
打开PhpStorm,进入File > Settings > Languages & Frameworks > PHP > Testing,完成以下几项设置:
- PHPUnit配置:选择“Use configuration file”,然后指定
phpunit.xml的绝对路径(比如/home/user/project/phpunit.xml)。 - PHP解释器:确保已经配置了正确的PHP版本。路径在
File > Settings > Languages & Frameworks > PHP,点击“…”添加本地或远程解释器。 - 服务器配置(可选):如果需要调试远程代码,可以添加服务器映射(
File > Settings > Languages & Frameworks > PHP > Servers),勾选“Use path mappings”并设置本地与远程路径的对应关系。
这一步其实很关键——很多人配置完PHPUnit后,PhpStorm还是找不到测试文件,往往就是这里设置遗漏了。
5. 编写测试用例
在项目根目录创建tests目录(名字要和phpunit.xml中的一致),然后新建测试类文件,比如ExampleTest.php。测试类需要继承PHPUnit\Framework\TestCase,测试方法必须以test开头。来个最简单的例子:
assertEquals(4, 2 + 2);
}
public function testStringContains()
{
$this->assertStringContainsString('Hello', 'Hello World');
}
}
命名规则要注意:类名必须遵循*Test.php(如UserTest.php),方法名以test开头(如testSa veUser)。这些约定一旦搞错,PHPUnit就识别不到了。
6. 运行测试
测试写好后,有两种运行方式:
- 通过PhpStorm界面:右键点击测试文件(如
ExampleTest.php)或测试方法(如testAddition),选择Run 'ExampleTest'(运行整个类)或Run 'testAddition()'(运行单个方法)。结果会显示在底部的Run工具窗口中,包括通过/失败状态、执行时间以及错误信息。 - 通过终端:在项目根目录执行命令:
终端输出的结果一目了然,./vendor/bin/phpunit # 运行所有测试 ./vendor/bin/phpunit --filter testAddition # 运行单个测试方法 ./vendor/bin/phpunit --coverage-html coverage # 生成代码覆盖率报告(HTML格式)--coverage-html参数可以生成可视化的覆盖率报告,默认放在coverage目录下。
两种方式各有优劣:IDE方式适合调试单个测试,终端方式适合批量运行或集成到CI/CD流水线。
7. 调试测试(可选)
如果测试出了问题,或者你想深入看看变量值的变化,可以在测试方法中设置断点(点击行号左侧),然后右键选择Debug 'ExampleTest'。PhpStorm会启动调试模式,显示变量值、调用栈等信息,这对定位问题非常有帮助。当然,前提是你已经配置好了Xdebug:sudo apt install php-xdebug,并在php.ini中启用zend_extension=xdebug.so。这一步很多人在初次配置时会忽略,但一旦用上,效率提升是质的飞跃。
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















