PhpStorm 2025.2 Help

PHPSpec

使用 PhpStorm,您可以通过运行 规范 ,使用 PHPSpec工具集来实践行为驱动开发。

开始之前

确保在 PhpStorm 的 PHP 页面中配置了 PHP 解释器,如 配置本地 PHP 解释器配置远程 PHP 解释器 中所述。

使用 Composer 安装 PHPSpec

在开始之前,请确保您的计算机上已安装 Composer,并按照 Composer 依赖管理器 中的说明在当前项目中初始化。

  1. composer.json 中,将 phpspec/phpspec 依赖项记录添加到 requirerequire-dev 键中。 要获取包名称和版本的代码补全,请按 Ctrl+Space

  2. 请执行以下操作之一:

    • 单击编辑器面板顶部的 安装 快捷链接。

    • 如果启用了 未安装的 Composer 包 检查,PhpStorm 将突出显示当前未安装的声明依赖项。 按 Alt+Enter 并选择是要安装特定依赖项还是一次性安装所有依赖项。

PHPSpec 官方网站了解更多关于 PHPSpec 安装的信息。

单击 设置按钮 ,位于 composer.json 编辑器边栏的包记录旁边,将带您到相应的 设置 页面,您可以在此 手动配置 PHPSpec

composer.json 中用于 phpspec 设置的边栏图标

将 PHPSpec 集成到 PhpStorm 项目中

如果您使用 本地 PHP 解释器 ,PhpStorm 会自动执行初始的 Codeception 配置。 对于 远程 PHP 解释器 ,则需要手动进行 Codeception 配置。

自动配置 PHPSpec

  1. phpspec.yml phpspec.yml.dist 配置文件存储在项目根目录下。

  2. 使用 Composer 安装 PHPSpec

PhpStorm 检测到已安装的 PHPSpec 可执行文件(如果项目有 由 Composer 管理的子项目并指定了 PHPSpec 依赖项,则可能有多个可执行文件),并在 测试框架页面上为每个已安装的 PHPSpec 可执行文件创建测试框架配置。

PHPSpec 配置

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

PHPSpec 运行/调试配置

手动配置 PHPSpec

  1. 设置 对话框 (Ctrl+Alt+S) 中,前往 PHP | 测试框架

    在打开的 测试框架页面中,单击中央窗格中的 添加图标 ,并从列表中选择配置类型:

    ps_settings_php_test_frameworks.png
    • 在本地配置中,使用默认的项目 PHP 解释器。 有关更多信息,请参阅 默认项目 CLI 解释器

    • 要使用远程 PHP 解释器运行 PHPSpec,请在打开的对话框中选择一个配置:

      ps_settings_php_test_frameworks_phpspec_choose_php_interpreter.png
  2. PHPSpec 可执行文件的路径 字段中,指定 phpspec 的位置。 PHPSpec 不一定需要安装在当前项目根目录下。 点击 重新加载按钮 字段旁的 PHPSpec 目录或 phar 文件的路径。 PhpStorm 检测到 PHPSpec 的版本并显示在字段下方。

    如果未为 本地解释器指定 PHPSpec 的路径,PhpStorm 将无法提供对 PHPSpec 的完整支持,例如,不会显示代码补全建议,也无法解析引用。

  3. 测试运行程序 区域中,设置用于启动和执行场景的配置 YML 文件的路径。

    • 清除 默认配置文件 复选框,以便 PHPSpec 使用项目根文件夹中的 phpspec.yml phpspec.yml.dist 配置文件。 如果未找到此类文件,测试执行将失败。 因此,显式指定配置文件可能更可靠。

    • 选中 默认配置文件 复选框,以指定路径到 YML 文件,该文件将用作所有 PHPSpec 运行/调试配置中的默认配置文件。

    在本地配置中, 前缀('spec_prefix'): 只读字段显示规范的命名空间前缀。 PhpStorm 从 默认配置文件 字段中指定的配置文件中检测到 spec_prefix。 默认值为 spec。 有关更多信息,请参阅 PHPSpec 配置:PSR-4PHPSpec 配置:规范和源位置

为类生成 PHPSpec 测试

  1. 通过执行以下任一操作打开 创建新的 PHP 测试 对话框:

    • 转到 文件|新建。 然后,从上下文菜单中选择 PHP 测试 | PHPSpec 规范

    • Project 工具窗口中,按 Alt+Insert 或右键单击要测试的 PHP 类,并选择 新建 | PHP 测试 | PHPSpec 规范

    • 在要测试的 PHP 类的编辑器中,将光标放在类的定义处。 然后,按 Alt+Enter 并从弹出菜单中选择 创建新测试。 通过这种方式,您可以为单个 PHP 文件中定义的多个类中的某个 PHP 类生成测试。

      要为某个方法创建测试,请将光标放在方法声明内。 所选方法将自动从 创建新的 PHP 测试 对话框中的方法列表中选中。

  2. 在打开的 创建新的 PHP 测试 对话框中,提供生成测试的参数。

    创建新的 phpspec 测试对话框
    • 测试文件模板 :PhpStorm 将基于此模板生成测试类。 确保从列表中选择了 PHPSpec

    • 名称 :测试类的名称。 PhpStorm 会根据生产类的名称自动生成名称,如 <生产类>Spec.php

    • 目录 :测试类文件的文件夹,系统会根据生产类的包含目录和命名空间、配置的 测试源根目录及其 PSR-4 包前缀 ,或 src_path 值(在 phpspec.yml配置文件中指定)自动建议。 请注意,为使自动文件夹建议正常工作,测试套件和生产类的命名空间必须匹配。

      要指定其他文件夹,请单击 “浏览”按钮 ,位于 目录 字段旁边,并选择相关文件夹。

    • 命名空间 :测试类所属的命名空间,系统会根据生产类的包含目录和命名空间、配置的 测试源根目录及其 PSR-4 包前缀 ,或 spec_prefixnamespace 值(在 phpspec.yml配置文件中指定)自动建议。

    • 成员 :要为其生成测试方法存根的生产类方法列表。 选中所需生产类方法旁边的复选框。 要包括从父类继承的方法,请选中 显示继承的方法 复选框。

      PhpStorm 将自动生成测试方法的名称,如 test<production method>。 您可以在 代码 选项卡的 文件和代码模板 设置页面上自定义用于生成测试方法存根的代码模板。

创建测试后,您可以通过选择 导航 | 转到测试主体 导航回生产类。 更多信息请参阅 在测试和其测试对象之间导航

运行和调试 PHPSpec 测试

有关编写 PHPSpec 规范的更多信息,请参阅 PHPSpec 文档。 要运行或调试您的测试,请执行以下任一操作:

运行或调试 PHPSpec 测试

  • 在项目工具窗口中,选择要运行测试的文件或文件夹,并从所选内容的上下文菜单中选择 运行“<file or folder>”调试 '<file or folder>'

    ps_test_frameworks_phpspec_launch_tests.png

    PhpStorm 会生成默认运行配置,并使用它启动运行或 调试测试会话。

保存自动生成的默认配置

  • 测试会话结束后,从运行小部件中相应的运行/调试配置的上下文菜单中选择 保存配置

通过先前保存的运行/调试配置运行或调试测试

  • 从工具栏的列表中选择所需的 PHPSpec 配置,然后单击 “运行”按钮调试按钮

创建自定义运行/调试配置

  1. Project 工具窗口中,选择要运行测试的文件或文件夹,并从上下文菜单中选择 创建运行配置。 或者,转到主菜单中的 运行 | 编辑配置(E) ,然后单击 添加图标 并从列表中选择 PHPSpec

  2. 在打开的 PHPSpec 对话框中,指定要运行的场景,选择要使用的 PHP 解释器 ,并通过指定要传递给 PHP 可执行文件的选项和参数来自定义其行为。

监控测试结果

PhpStorm 在 测试运行器选项卡运行工具窗口 中显示测试执行结果。

ps_test_result_phpspec.png

该选项卡分为两个主要区域:

  • 左侧区域允许您深入查看所有单元测试,以查看成功和失败的测试。 您可以筛选测试、导出结果,并使用上下文菜单命令运行特定测试或导航到源代码。

  • 右侧区域显示原始 PHPSpec 输出。

最后修改日期: 2025年 9月 26日