PHPUnit
PhpStorm 通过与 PHPUnit 测试框架的集成支持 PHP 应用程序的单元测试。
开始之前
确保在 PhpStorm 的 PHP 页面中配置了 PHP 解释器,如 配置本地 PHP 解释器 和 配置远程 PHP 解释器 中所述。
下载并安装 PHPUnit
在开始之前,请确保您的计算机上已安装 Composer,并按照 Composer 依赖管理器 中的说明在当前项目中初始化。
手动下载并安装 phpunit.phar
从 phpunit.phar 下载并保存到您的计算机: PHPUnit 官方网站。
如果您需要完整的代码辅助功能以及运行 PHPUnit 测试的能力,请将 phpunit.phar 存储在项目的根目录下,稍后将在其中使用 PHPUnit。
如果您只需要运行 PHPUnit 测试而不需要任何代码辅助功能,可以将 phpunit.phar 保存到项目外部。
使用 Composer 下载并安装 phpunit.phar
在 composer.json 中,将
phpunit/phpunit依赖项记录添加到require或require-dev键中。 要获取包名称和版本的代码补全,请按 Ctrl+Space。请执行以下操作之一:
单击编辑器面板顶部的 安装 快捷链接。
如果启用了 未安装的 Composer 包 检查,PhpStorm 将突出显示当前未安装的声明依赖项。 按 Alt+Enter 并选择是要安装特定依赖项还是一次性安装所有依赖项。
单击 ,位于 composer.json 编辑器边栏的包记录旁边,将带您到相应的 设置 页面,您可以在该页面中 手动配置 PHPUnit。

将 PHPUnit 集成到 PhpStorm 项目中
如果您使用 本地 PHP 解释器 ,PhpStorm 会自动执行初始 PHPUnit 配置。 对于 远程 PHP 解释器 ,则需要手动配置 PHPUnit。
自动配置 PHPUnit
将 phpunit.xml 或 phpunit.xml.dist 配置文件存储在项目根目录下。
PhpStorm 检测到已安装的 PHPUnit 可执行文件(如果项目有 由 Composer 管理的子项目 并指定了 PHPUnit 依赖项,则可能有多个可执行文件),并在 测试框架 页面上为每个已安装的 PHPUnit 可执行文件创建测试框架配置。

如果在项目(或子项目)根目录下自动检测到 phpunit.xml 或 phpunit.xml.dist 配置文件,或者在 手动配置 期间明确指定,PhpStorm 还会创建相应的 PHPUnit 运行/调试配置。

手动配置 PHPUnit
在 设置 对话框 (Ctrl+Alt+S) 中,前往 。
在打开的 测试框架页面中,单击中央窗格中的
,并从列表中选择配置类型:

在本地配置中,使用默认的项目 PHP 解释器。 有关更多信息,请参阅 默认项目 CLI 解释器。
要将 PHPUnit 与远程 PHP 解释器一起使用,请在打开的对话框中选择一种配置:

在右侧窗格中,选择 PHPUnit 库的安装类型:
要使用 Composer 自动加载器,请在 vendor 文件夹中指定 autoload.php 文件的路径。 有关更多信息,请参阅 Composer。
要从 phpunit.phar 运行 PHPUnit,请下载 phpunit.phar ,将存档保存到项目根文件夹,并指定其路径。 对于本地配置,您可以通过单击提供的下载链接下载存档。 要在当前项目中使用它,请确保已定义默认的 PHP 解释器。
当您单击
时,PhpStorm 会检测并显示 PHPUnit 版本。
在 测试运行程序 区域中,设置用于启动和执行场景的配置 XML 文件的路径。
您还可以输入引导文件的路径,以便在启动测试之前始终执行一个 PHP 脚本。 在字段中指定脚本的位置。 手动输入路径或单击
并在 打开的对话框 中选择所需的文件夹。
请注意,您还可以在编辑特定的 PHPUnit 运行/调试配置时提供备用配置和引导文件。
为类生成 PHPUnit 测试
通过执行以下任一操作打开 创建新的 PHP 测试 对话框:
转到 。 然后,从上下文菜单中选择 PHP 测试 | PHPUnit 测试。
在 Project 工具窗口中,按 Alt+Insert 或右键单击要测试的 PHP 类并选择。
在要测试的 PHP 类的编辑器中,将光标放在类的定义处。 然后,按 Alt+Enter 并从弹出菜单中选择 创建新测试。 通过这种方式,您可以为单个 PHP 文件中定义的多个类中的某个 PHP 类生成测试。
要为某个方法创建测试,请将光标放在方法声明内。 所选方法将自动从 创建新的 PHP 测试 对话框中的方法列表中选中。
在打开的 创建新的 PHP 测试 对话框中,提供生成测试的参数。

测试文件模板 :PhpStorm 将基于此模板生成测试类。 确保从列表中选择了 PHPUnit (如果您使用的是 PHPUnit 6 或更早版本,则选择 PHPUnit<6)。
名称 :测试类的名称。 PhpStorm 会根据生产类的名称自动生成名称,如 <production class>Test.php 。
目录 :测试类文件的文件夹,基于生产类的包含目录和命名空间、配置的 测试源根 及其 PSR-4 包前缀 ,或 phpunit.xml 配置文件中指定的
directory值自动建议。要指定其他文件夹,请单击
,位于 目录 字段旁边,并选择相关文件夹。
命名空间 :测试类所属的命名空间,基于生产类的包含目录和命名空间、配置的 测试源根 及其 psr-4 包前缀 自动建议。
成员 :要为其生成测试方法存根的生产类方法列表。 选中所需生产类方法旁边的复选框。 要包括从父类继承的方法,请选中 显示继承的方法 复选框。
PhpStorm 将自动生成测试方法的名称,如
test<production method>。 您可以在 代码 选项卡的 文件和代码模板 设置页面上自定义用于生成测试方法存根的代码模板。
创建测试后,您可以通过选择 导航 | 转到测试主体 导航回生产类。 更多信息请参阅 在测试和其测试对象之间导航。
生成 PHPUnit 测试方法
在编辑器中打开所需的测试类,并将光标放置在类定义中的任意位置。
在上下文菜单中选择 生成… 或按 Alt+Insert。 然后从 生成 列表中选择 测试方法。
设置测试 fixture ,即生成代码存根以在测试开始前模拟所需环境,并在测试结束后恢复原始环境:
在上下文菜单中选择 生成… 或按 Alt+Insert。 然后从 生成 列表中选择 SetUp 方法 或 TearDown 方法。
有关更多信息,请参阅 PHPUnit 官方网站上的 Fixtures。
您可以在 文件和代码模板 页面的 设置 对话框(Ctrl+Alt+S )中自定义用于生成 PHPUnit 测试方法的 代码模板。 要快速访问此页面,请在 生成 列表中,从方法的子菜单中选择 编辑模板。

运行和调试 PHPUnit 测试
您可以运行和调试单个测试以及整个文件和文件夹中的测试。 PhpStorm 会使用默认设置创建一个运行/调试配置并启动测试。 您可以稍后保存此配置以便重复使用。
运行或调试 PHPUnit 测试
在项目工具窗口中,选择要运行测试的文件或文件夹,并从所选内容的上下文菜单中选择 运行“<file or folder>” 或 调试 '<file or folder>'。

PhpStorm 会生成默认运行配置,并使用它启动运行或 调试测试会话。
运行或调试单个测试
您可以从文件编辑器窗口运行或调试特定测试类或测试方法的单个测试。
在编辑器中打开测试文件,单击测试旁边边栏中的
,并从上下文菜单中选择 运行“<test_name>” 或 调试 '<test_name>'。 或者,将光标放置在相应的行上并按 Ctrl+Shift+F10。

为单个数据集运行测试
如果 PHPUnit 测试使用了 数据提供者 ,您可以为某些类型的数据集运行单个测试。 可以单独运行的数据集在编辑器中用 边栏图标标记。
在文件编辑器中,单击数据集旁边边栏中的
(或右键单击相应的代码行)并选择 运行“<test_name>”。

运行选定的测试
在编辑器中打开目标文件,右键单击所需的测试目标,即被测试的类或方法,并选择 或按 Ctrl+Shift+T。
从弹出菜单中选择要执行的测试。 对于多选,请使用 Ctrl 和 Shift。

按 Ctrl+Shift+F10 运行选定的测试。
测试会话结束后,PhpStorm 会自动创建一个运行/调试配置,并将其 测试作用域 设置为 复合。 有关更多信息,请参阅 PHPUnit。
将自动生成的配置保存为永久配置
测试会话结束后,从运行小部件中相应的运行/调试配置的上下文菜单中选择 保存配置。

通过先前保存的运行/调试配置运行或调试测试
从工具栏的列表中选择所需的 PHPUnit 配置,然后单击
或
。
创建自定义运行/调试配置
在 Project 工具窗口中,选择要运行测试的文件或文件夹,并从上下文菜单中选择 创建运行配置。 或者,转到主菜单中的 ,然后单击
并从列表中选择 PHPUnit。
在打开的 PHPUnit 对话框中,指定要运行的场景,选择要使用的 PHP 解释器 ,并通过指定要传递给 PHP 可执行文件的选项和参数来自定义其行为。
并行运行 PHPUnit 测试
为了加快 PhpStorm 中 PHPUnit 测试的执行速度,您可以使用 ParaTest 包在并行进程中运行它们。 可以为分组在文件夹(测试套件)中的 PHPUnit 测试设置并行执行选项。
通过以下任一方式,在 测试运行器 设置中为 PhpStorm 设置 ParaTest 二进制文件 的路径:
在 设置 对话框(Ctrl+Alt+S )中,转到 并设置 默认 ParaTest 二进制文件 字段。

对于现有的运行配置,打开 运行配置 对话框,选中 使用 ParaTest 复选框,并在字段中设置文件路径。

在 Project 工具窗口中,右键单击要运行测试的文件夹,并从上下文菜单中选择 使用 ParaTest 运行 <test_name>(PHPUnit) 选项。

或者,右键单击 phpunit.xml 配置文件,并从上下文菜单中选择 使用 ParaTest 运行 `phpunit.xml(PHPUnit)` 选项。
监控测试结果
PhpStorm 在 测试运行器选项卡的 运行工具窗口 中显示测试执行结果。

该选项卡分为两个主要区域:
左侧区域允许您深入查看所有单元测试,以查看成功和失败的测试。 您可以筛选测试、导出结果,并使用上下文菜单命令运行特定测试或导航到源代码。
右侧区域显示原始 PHPUnit 输出。
自动运行 PHPUnit 测试
当受影响的代码更改时,您可以让 PhpStorm 自动重新运行测试。 此选项是针对每个运行/调试配置配置的,可以应用于测试、测试文件、文件夹或测试的组合选择,具体取决于此运行/调试配置中指定的测试范围。
运行测试.
在 运行 工具栏上,单击
自动重新运行。

可选地,为在代码更改时启动测试设置时间延迟。 为此,请在 运行 工具栏上,单击
并选择
测试运行程序设置 | 设置自动测试延迟。
