阅读(4423) (12)

IntelliJ IDEA:使用PHPSpec进行测试

2019-04-04 11:47:49 更新

使用PHPSpec进行测试

此功能仅在Ultimate版本中受支持。

使用IntelliJ IDEA,您可以通过使用PHPSpec工具集运行规范来练习行为驱动的开发。

开始之前

  1. 确保已安装并启用了PHP和PHPSpec插件。插件未与IntelliJ IDEA捆绑在一起,但可以从JetBrains插件存储库中安装它们 ,如管理插件中所述。启用后,插件可在IDE级别使用,也就是说,您可以在所有IntelliJ IDEA项目中使用它们。
  2. 确保PHP解释器在PHP页面上的IntelliJ IDEA 中配置,如配置本地PHP解释器配置远程PHP解释器中所述。

使用Composer安装PHPSpec

在开始之前,请确保您的计算机上已安装Composer,并在“Composer依赖关系管理”中所述的当前项目中进行初始化。

  1. 从composer.json的上下文菜单中,选择:Composer|管理依赖关系。或者从主菜单选择:工具|Composer|管理依赖关系。

  2. 在打开的“管理Composer依赖关系”对话框中,可以使用搜索字段从“可选包”列表中选择phpspec/phpspec包。

    从要安装的版本列表中选择相关版本。

  3. 如有必要,请展开“设置隐藏”区域并指定高级安装选项。在“命令行参数”字段中,键入其他命令行参数。建议提供--dev:选项:在这种情况下,包将添加到composer.json文件的require-dev部分而不是默认的require部分。

  4. 单击“安装”。

将PHPSpec与IntelliJ IDEA项目集成 

如果您使用本地PHP解释器,IntelliJ IDEA会自动执行初始PHPSpec配置。

自动配置PHPSpec

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

  2. 使用Composer安装PHPSpec。

IntelliJ IDEA将在“测试框架”页面和PHPSpec运行/调试配置上创建本地框架配置。

您可以手动配置PHPSpec。如果使用远程PHP解释器,则需要手动配置。

手动配置PHPSpec

  1. 在“设置/首选项” 对话框(Ctrl+Alt+S)中,展开“语言和框架”节点,然后选择“PHP”下的“测试框架” 。

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

    ps_settings_php_test_frameworks.png
    • 在本地配置中,使用默认项目PHP解释器。

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

      ps_settings_php_test_frameworks_phpspec_choose_php_interpreter.png
  2. 在PHPSpec可执行文件的路径中,指定phpspec的位置。PHPSpec不一定必须安装在当前项目根目录下。点击“指向Codeception目录或phar文件的路径”字段旁边的重新加载按钮。IntelliJ IDEA检测PHPSpec的版本并将其显示在字段下方。

    如果没有为本地解释器指定PHPSpec的路径,则IntelliJ IDEA不提供对PHPSpec的完全支持,例如,它不显示代码完成的建议,也不解析引用。

  3. 在“测试运行出程序”区域中,指定用于启动和执行规范的配置YML文件。

    默认情况下,PHPSpec在项目根文件夹中查找phpspec.yml或phpspec.yml.dist配置文件。您可以指定自定义配置文件。

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

    • 选中“默认配置文件”复选框以指定您自己的YML配置文件。此文件稍后将在所有PHPSpec运行/调试配置中用作默认值。

      在该字段中,指定要使用的配置文件的位置。手动键入路径或单击browseButton并在打开的对话框中选择文件。

    在本地配置中,Prefix('spec_prefix'):只读字段显示规范的名称空间前缀。IntelliJ IDEA从“默认配置文件”字段中指定的配置文件中进行检测spec_prefix。默认值为spec

为类生成PHPSpec测试

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

    • 在主菜单上,选择:文件|新建。然后,在上下文菜单中选择:PHP测试|PHPSpec Spec。

    • 在“项目”工具窗口中,按下Alt+Insert或右键单击要测试的PHP类,然后选择:新建|PHP测试|PHPSpec规格。

    • 在要测试的PHP类的编辑器中,将插入符号放在类的定义中。然后,从上下文菜单中选择:转到|测试或按下Ctrl+Shift+T,然后从弹出菜单中选择“创建新测试”。这样,您就可以为单个PHP文件中的多个类中定义的PHP类生成测试。

      要为某个方法创建测试,请将插入符号放在方法声明中。将在“创建新的PHP测试”对话框的“生成测试方法”区域中自动选择所选方法。

  2. 将打开“创建新的PHP测试”对话框。

    创建新的phpspec测试对话框

    提供生成的测试的参数:

    • 测试文件模板,即IntelliJ IDEA将基于其生成测试类的模板。确保在“测试文件模板”列表中选择了PHPSpec。

    • 要测试的类的完全限定名称,此名称将用于建议测试类名称。默认情况下,“名称”框显示调用测试生成的类的名称。要使用完成,请按下Ctrl+Space。

    • 测试类的名称。IntelliJ IDEA自动将生产类名称中的名称组合为<production class>Spec.php。测试类名称显示在“测试类”区域的“名称”字段中。

    • 测试类的文件夹。默认情况下,它是标记为测试源根目录的文件夹。如果未指定此类文件夹,则建议使用包含生产类的文件夹。

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

    • 用于生成测试方法存根的生产类方法。在“为区域生成测试方法”中,选中所需生产类方法旁边的复选框。要包含父类中的继承方法,请选中“显示继承的方法”复选框。

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

  3. 检查,接受或更新预定义设置,然后单击“确定”以启动测试生成。

运行和调试PHPSpec测试 

要运行或调试测试,请执行以下操作之一:

  • 在“项目”工具窗口中,选择要运行测试的文件或文件夹,然后从选择 的上下文菜单中选择“Run '<file or folder>'或“Debug '<file or folder>'“:

    ps_test_frameworks_phpspec_launch_tests.png

    IntelliJ IDEA生成默认运行配置并使用它启动运行/调试测试会话。

保存自动生成的默认配置

  • 测试会话结束后,从文件或文件夹的上下文菜单中选择:保存<default_test_configuration_name>。

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

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

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

  1. 在“项目”工具窗口中,选择要运行测试的文件或文件夹,然后从上下文菜单中选择“创建运行配置”。或者,在主菜单上选择:运行| 在主菜单上编辑配置,然后单击添加图标并从列表中选择PHPSpec。

  2. 在打开的“运行/调试配置:PHPSpec”对话框中,指定要运行的方案,并通过指定要传递给PHP可执行文件的选项和参数来自定义当前PHP解释器的行为。

监控测试结果

IntelliJ IDEA在“运行工具”窗口的“测试运行器”选项卡中显示测试执行结果。

ps_test_result_phpspec.png

该标签分为两个主要区域:

  • 左侧区域允许您深入查看所有单元测试以查看成功和失败的单元测试。您可以过滤测试,导出结果,并使用上下文菜单命令来运行特定测试或导航到源代码。
  • 右侧区域显示原始PHPSpec输出。