PHPSpec
使用 PhpStorm,您可以通过运行 规范 ,使用 PHPSpec工具集来实践行为驱动开发。
开始之前
确保在 PhpStorm 的 PHP 页面中配置了 PHP 解释器,如 配置本地 PHP 解释器 和 配置远程 PHP 解释器 中所述。
使用 Composer 安装 PHPSpec
在开始之前,请确保您的计算机上已安装 Composer,并按照 Composer 依赖管理器 中的说明在当前项目中初始化。
在 composer.json 中,将
phpspec/phpspec依赖项记录添加到require或require-dev键中。 要获取包名称和版本的代码补全,请按 Ctrl+Space。请执行以下操作之一:
单击编辑器面板顶部的 安装 快捷链接。
如果启用了 未安装的 Composer 包 检查,PhpStorm 将突出显示当前未安装的声明依赖项。 按 Alt+Enter 并选择是要安装特定依赖项还是一次性安装所有依赖项。
从 PHPSpec 官方网站了解更多关于 PHPSpec 安装的信息。
单击 ,位于 composer.json 编辑器边栏的包记录旁边,将带您到相应的 设置 页面,您可以在此 手动配置 PHPSpec。

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

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

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

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

在 PHPSpec 可执行文件的路径 字段中,指定 phpspec 的位置。 PHPSpec 不一定需要安装在当前项目根目录下。 点击
字段旁的 PHPSpec 目录或 phar 文件的路径。 PhpStorm 检测到 PHPSpec 的版本并显示在字段下方。
如果未为 本地解释器指定 PHPSpec 的路径,PhpStorm 将无法提供对 PHPSpec 的完整支持,例如,不会显示代码补全建议,也无法解析引用。
在 测试运行程序 区域中,设置用于启动和执行场景的配置 YML 文件的路径。
清除 默认配置文件 复选框,以便 PHPSpec 使用项目根文件夹中的 phpspec.yml 或 phpspec.yml.dist 配置文件。 如果未找到此类文件,测试执行将失败。 因此,显式指定配置文件可能更可靠。
选中 默认配置文件 复选框,以指定路径到 YML 文件,该文件将用作所有 PHPSpec 运行/调试配置中的默认配置文件。
在本地配置中, 前缀('spec_prefix'): 只读字段显示规范的命名空间前缀。 PhpStorm 从 默认配置文件 字段中指定的配置文件中检测到
spec_prefix。 默认值为 spec。 有关更多信息,请参阅 PHPSpec 配置:PSR-4和 PHPSpec 配置:规范和源位置。
为类生成 PHPSpec 测试
通过执行以下任一操作打开 创建新的 PHP 测试 对话框:
转到 。 然后,从上下文菜单中选择 PHP 测试 | PHPSpec 规范。
在 Project 工具窗口中,按 Alt+Insert 或右键单击要测试的 PHP 类,并选择 新建 | PHP 测试 | PHPSpec 规范。
在要测试的 PHP 类的编辑器中,将光标放在类的定义处。 然后,按 Alt+Enter 并从弹出菜单中选择 创建新测试。 通过这种方式,您可以为单个 PHP 文件中定义的多个类中的某个 PHP 类生成测试。
要为某个方法创建测试,请将光标放在方法声明内。 所选方法将自动从 创建新的 PHP 测试 对话框中的方法列表中选中。
在打开的 创建新的 PHP 测试 对话框中,提供生成测试的参数。

测试文件模板 :PhpStorm 将基于此模板生成测试类。 确保从列表中选择了 PHPSpec。
名称 :测试类的名称。 PhpStorm 会根据生产类的名称自动生成名称,如 <生产类>Spec.php 。
目录 :测试类文件的文件夹,系统会根据生产类的包含目录和命名空间、配置的 测试源根目录及其 PSR-4 包前缀 ,或
src_path值(在 phpspec.yml配置文件中指定)自动建议。 请注意,为使自动文件夹建议正常工作,测试套件和生产类的命名空间必须匹配。要指定其他文件夹,请单击
,位于 目录 字段旁边,并选择相关文件夹。
命名空间 :测试类所属的命名空间,系统会根据生产类的包含目录和命名空间、配置的 测试源根目录及其 PSR-4 包前缀 ,或
spec_prefix和namespace值(在 phpspec.yml配置文件中指定)自动建议。成员 :要为其生成测试方法存根的生产类方法列表。 选中所需生产类方法旁边的复选框。 要包括从父类继承的方法,请选中 显示继承的方法 复选框。
PhpStorm 将自动生成测试方法的名称,如
test<production method>。 您可以在 代码 选项卡的 文件和代码模板 设置页面上自定义用于生成测试方法存根的代码模板。
创建测试后,您可以通过选择 导航 | 转到测试主体 导航回生产类。 更多信息请参阅 在测试和其测试对象之间导航。
运行和调试 PHPSpec 测试
有关编写 PHPSpec 规范的更多信息,请参阅 PHPSpec 文档。 要运行或调试您的测试,请执行以下任一操作:
运行或调试 PHPSpec 测试
在项目工具窗口中,选择要运行测试的文件或文件夹,并从所选内容的上下文菜单中选择 运行“<file or folder>” 或 调试 '<file or folder>'。

PhpStorm 会生成默认运行配置,并使用它启动运行或 调试测试会话。
保存自动生成的默认配置
测试会话结束后,从运行小部件中相应的运行/调试配置的上下文菜单中选择 保存配置。
通过先前保存的运行/调试配置运行或调试测试
从工具栏的列表中选择所需的 PHPSpec 配置,然后单击
或
。
创建自定义运行/调试配置
在 Project 工具窗口中,选择要运行测试的文件或文件夹,并从上下文菜单中选择 创建运行配置。 或者,转到主菜单中的 ,然后单击
并从列表中选择 PHPSpec。
在打开的 PHPSpec 对话框中,指定要运行的场景,选择要使用的 PHP 解释器 ,并通过指定要传递给 PHP 可执行文件的选项和参数来自定义其行为。
监控测试结果
PhpStorm 在 测试运行器选项卡的 运行工具窗口 中显示测试执行结果。

该选项卡分为两个主要区域:
左侧区域允许您深入查看所有单元测试,以查看成功和失败的测试。 您可以筛选测试、导出结果,并使用上下文菜单命令运行特定测试或导航到源代码。
右侧区域显示原始 PHPSpec 输出。