codecamp

IntelliJ IDEA:使用Codeception进行测试

使用Codeception进行测试

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

IntelliJ IDEA 使用Codeception测试框架2.2.0及更高版本为运行单元,功能和验收测试提供支持。 

开始准备

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

下载并安装Codeception

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

手动下载并安装Codeception

  • 在Codeception安装页面下载codeception.phar,并将其保存在稍后将使用Codeception的项目的根目录下。 

    您还可以将codeception.phar保存在其他位置,并将其配置为包含路径。在任何一种情况下,IntelliJ IDEA都会在索引中包含codeception.phar,因此它将成功解析对Codeception类的引用,从而为您提供完整的编码帮助。

使用Composer下载并安装Codeception

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

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

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

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

  4. 单击“安装”。

在IntelliJ IDEA项目中初始化Code​​ception

安装了Codeception之后,需要通过生成codeception.yml配置文件在项目中初始化它。

生成codeception.yml配置文件

  • 打开内置的IntelliJ IDEA终端(Alt+F12),并在命令提示符下键入以下命令之一,具体取决于安装模式和当前操作系统:

    • 如果在项目中安装了codeception.phar,请键入php codecept.phar bootstrap(对于Windows和macOS)或codecept bootstrap(对于Linux)。

    • 如果您通过Composer全局安装了Codeception,请键入codecept bootstrap(适用于所有平台)。

在项目中集成Codeception和IntelliJ IDEA

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

自动配置Codeception 

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

  2. 使用Composer安装Codeception。

IntelliJ IDEA将在Test Frameworks页面和Codeception运行/调试配置上创建本地框架配置。

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

手动配置Codeception

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

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

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

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

      ps_settings_php_test_frameworks_codeception_choose_php_interpreter.png
  2. 在“代码库”区域中,指定目标环境中的Codeception可执行文件或codeception.phar存档的位置。例如,如果您通过Composer安装了Codeception,则可执行文件存储在vendor/bin/codecept中。点击“指向Codeception目录或phar文件的路径”字段旁边的重新加载按钮。IntelliJ IDEA检测Codeception的版本并将其显示在字段下方。

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

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

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

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

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

为类生成Codeception测试

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

    • 在主菜单上,选择:文件|新建。然后,从上下文菜单中选择:PHP测试|Codeception单元测试,或:PHP测试|Codeception功能测试。

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

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

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

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

    创建新的代码测试对话框

    提供生成的测试的参数:

    • 测试文件模板,即IntelliJ IDEA将基于其生成测试类的模板。确保在测试文件模板列表中选择了Codeception单元或Codeception功能。

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

    • 测试类的名称。IntelliJ IDEA自动将生产类名称中的名称组成为<production class>Test.php(用于Codeception单元测试)或<production class>Cest.php(用于Codeception功能测试)。测试类名称显示在“测试类”区域的“名称”字段中。

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

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

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

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

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

测试准备就绪后,您可以通过选择:导航|转到测试主题以导航回生产类 。

运行和调试Codeception测试

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

    ps_test_frameworks_codeception_launch_tests.png

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

保存自动生成的默认配置

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

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

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

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

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

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

监控测试结果

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

ps_test_result_codeception.png

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

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


IntelliJ IDEA:使用Behat进行测试
IntelliJ IDEA:使用PHPSpec进行测试
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

IntelliJ IDEA的一般准则

什么是IntelliJ IDEA项目

使用IntelliJ IDEA的意图行为

IntelliJ IDEA使用运行/调试配置

特定于VCS的程序

IntelliJ IDEA语言和特定框架指南

IntelliJ IDEA的数据库和SQL功能

IntelliJ IDEA使用之JavaServer Faces(JSF)

IntelliJ IDEA:分析PHP应用程序的性能

IntelliJ IDEA:调试PHP应用程序

IntelliJ IDEA:适用于PHP的Google App Engine

IntelliJ IDEA更多内容

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }