IntelliJ IDEA:使用PHPSpec進行測試

2019-04-04 17:30 更新

使用PHPSpec進行測試

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

使用IntelliJ IDEA,您可以通過使用PHPSpec工具集運行規(guī)范來練習(xí)行為驅(qū)動的開發(fā)。

開始之前

  1. 確保已安裝并啟用了PHP和PHPSpec插件。插件未與IntelliJ IDEA捆綁在一起,但可以從JetBrains插件存儲庫中安裝它們 ,如管理插件中所述。啟用后,插件可在IDE級別使用,也就是說,您可以在所有IntelliJ IDEA項目中使用它們。
  2. 確保PHP解釋器在PHP頁面上的IntelliJ IDEA 中配置,如配置本地PHP解釋器配置遠程PHP解釋器中所述。

使用Composer安裝PHPSpec

在開始之前,請確保您的計算機上已安裝Composer,并在“Composer依賴關(guān)系管理”中所述的當(dāng)前項目中進行初始化。

  1. 從composer.json的上下文菜單中,選擇:Composer|管理依賴關(guān)系?;蛘邚闹鞑藛芜x擇:工具|Composer|管理依賴關(guān)系。

  2. 在打開的“管理Composer依賴關(guān)系”對話框中,可以使用搜索字段從“可選包”列表中選擇phpspec/phpspec包。

    從要安裝的版本列表中選擇相關(guān)版本。

  3. 如有必要,請展開“設(shè)置隱藏”區(qū)域并指定高級安裝選項。在“命令行參數(shù)”字段中,鍵入其他命令行參數(shù)。建議提供--dev:選項:在這種情況下,包將添加到composer.json文件的require-dev部分而不是默認(rèn)的require部分。

  4. 單擊“安裝”。

將PHPSpec與IntelliJ IDEA項目集成 

如果您使用本地PHP解釋器,IntelliJ IDEA會自動執(zhí)行初始PHPSpec配置。

自動配置PHPSpec

  1. 將phpspec.yml或phpspec.yml.dist配置文件存儲在項目根目錄下。

  2. 使用Composer安裝PHPSpec。

IntelliJ IDEA將在“測試框架”頁面和PHPSpec運行/調(diào)試配置上創(chuàng)建本地框架配置。

您可以手動配置PHPSpec。如果使用遠程PHP解釋器,則需要手動配置。

手動配置PHPSpec

  1. 在“設(shè)置/首選項” 對話框(Ctrl+Alt+S)中,展開“語言和框架”節(jié)點,然后選擇“PHP”下的“測試框架” 。

    在打開的“測試框架”頁面上,單擊中央窗格的添加圖標(biāo),然后從列表中選擇配置類型:

    ps_settings_php_test_frameworks.png
    • 在本地配置中,使用默認(rèn)項目PHP解釋器。

    • 要將PHPSpec與遠程PHP解釋器一起使用,請在打開的對話框中選擇一個配置:

      ps_settings_php_test_frameworks_phpspec_choose_php_interpreter.png
  2. 在PHPSpec可執(zhí)行文件的路徑中,指定phpspec的位置。PHPSpec不一定必須安裝在當(dāng)前項目根目錄下。點擊“指向Codeception目錄或phar文件的路徑”字段旁邊的重新加載按鈕。IntelliJ IDEA檢測PHPSpec的版本并將其顯示在字段下方。

    如果沒有為本地解釋器指定PHPSpec的路徑,則IntelliJ IDEA不提供對PHPSpec的完全支持,例如,它不顯示代碼完成的建議,也不解析引用。

  3. 在“測試運行出程序”區(qū)域中,指定用于啟動和執(zhí)行規(guī)范的配置YML文件。

    默認(rèn)情況下,PHPSpec在項目根文件夾中查找phpspec.yml或phpspec.yml.dist配置文件。您可以指定自定義配置文件。

    • 清除“默認(rèn)配置文件”復(fù)選框,使PHPSpec使用項目根文件夾中的phpspec.yml或phpspec.yml.dist配置文件。如果未找到此類文件,則測試執(zhí)行失敗,因此明確指定配置文件可能更可靠。

    • 選中“默認(rèn)配置文件”復(fù)選框以指定您自己的YML配置文件。此文件稍后將在所有PHPSpec運行/調(diào)試配置中用作默認(rèn)值。

      在該字段中,指定要使用的配置文件的位置。手動鍵入路徑或單擊browseButton并在打開的對話框中選擇文件。

    在本地配置中,Prefix('spec_prefix'):只讀字段顯示規(guī)范的名稱空間前綴。IntelliJ IDEA從“默認(rèn)配置文件”字段中指定的配置文件中進行檢測spec_prefix。默認(rèn)值為spec。

為類生成PHPSpec測試

  1. 執(zhí)行以下任一操作, 打開“創(chuàng)建新的PHP測試”對話框:

    • 在主菜單上,選擇:文件|新建。然后,在上下文菜單中選擇:PHP測試|PHPSpec Spec。

    • 在“項目”工具窗口中,按下Alt+Insert或右鍵單擊要測試的PHP類,然后選擇:新建|PHP測試|PHPSpec規(guī)格。

    • 在要測試的PHP類的編輯器中,將插入符號放在類的定義中。然后,從上下文菜單中選擇:轉(zhuǎn)到|測試或按下Ctrl+Shift+T,然后從彈出菜單中選擇“創(chuàng)建新測試”。這樣,您就可以為單個PHP文件中的多個類中定義的PHP類生成測試。

      要為某個方法創(chuàng)建測試,請將插入符號放在方法聲明中。將在“創(chuàng)建新的PHP測試”對話框的“生成測試方法”區(qū)域中自動選擇所選方法。

  2. 將打開“創(chuàng)建新的PHP測試”對話框。

    創(chuàng)建新的phpspec測試對話框

    提供生成的測試的參數(shù):

    • 測試文件模板,即IntelliJ IDEA將基于其生成測試類的模板。確保在“測試文件模板”列表中選擇了PHPSpec。

    • 要測試的類的完全限定名稱,此名稱將用于建議測試類名稱。默認(rèn)情況下,“名稱”框顯示調(diào)用測試生成的類的名稱。要使用完成,請按下Ctrl+Space。

    • 測試類的名稱。IntelliJ IDEA自動將生產(chǎn)類名稱中的名稱組合為<production class>Spec.php。測試類名稱顯示在“測試類”區(qū)域的“名稱”字段中。

    • 測試類的文件夾。默認(rèn)情況下,它是標(biāo)記為測試源根目錄的文件夾。如果未指定此類文件夾,則建議使用包含生產(chǎn)類的文件夾。

      要指定其他文件夾,請單擊“目錄”字段旁邊的瀏覽按鈕,然后選擇相關(guān)文件夾。

    • 用于生成測試方法存根的生產(chǎn)類方法。在“為區(qū)域生成測試方法”中,選中所需生產(chǎn)類方法旁邊的復(fù)選框。要包含父類中的繼承方法,請選中“顯示繼承的方法”復(fù)選框。

      IntelliJ IDEA會自動將測試方法的名稱組成test<production method>。您可以在“文件和代碼模板”設(shè)置頁面的“代碼”選項卡上自定義用于生成測試方法存根的代碼模板。

  3. 檢查,接受或更新預(yù)定義設(shè)置,然后單擊“確定”以啟動測試生成。

運行和調(diào)試PHPSpec測試 

要運行或調(diào)試測試,請執(zhí)行以下操作之一:

  • 在“項目”工具窗口中,選擇要運行測試的文件或文件夾,然后從選擇 的上下文菜單中選擇“Run '<file or folder>'或“Debug '<file or folder>'“:

    ps_test_frameworks_phpspec_launch_tests.png

    IntelliJ IDEA生成默認(rèn)運行配置并使用它啟動運行/調(diào)試測試會話。

保存自動生成的默認(rèn)配置

  • 測試會話結(jié)束后,從文件或文件夾的上下文菜單中選擇:保存<default_test_configuration_name>。

通過先前保存的運行/調(diào)試配置運行或調(diào)試測試

  • 從工具欄上的列表中選擇所需的PHPSpec配置,然后單擊運行按鈕調(diào)試按鈕。

創(chuàng)建自定義運行/調(diào)試配置

  1. 在“項目”工具窗口中,選擇要運行測試的文件或文件夾,然后從上下文菜單中選擇“創(chuàng)建運行配置”?;蛘?,在主菜單上選擇:運行| 在主菜單上編輯配置,然后單擊添加圖標(biāo)并從列表中選擇PHPSpec。

  2. 在打開的“運行/調(diào)試配置:PHPSpec”對話框中,指定要運行的方案,并通過指定要傳遞給PHP可執(zhí)行文件的選項和參數(shù)來自定義當(dāng)前PHP解釋器的行為。

監(jiān)控測試結(jié)果

IntelliJ IDEA在“運行工具”窗口的“測試運行器”選項卡中顯示測試執(zhí)行結(jié)果。

ps_test_result_phpspec.png

該標(biāo)簽分為兩個主要區(qū)域:

  • 左側(cè)區(qū)域允許您深入查看所有單元測試以查看成功和失敗的單元測試。您可以過濾測試,導(dǎo)出結(jié)果,并使用上下文菜單命令來運行特定測試或?qū)Ш降皆创a。
  • 右側(cè)區(qū)域顯示原始PHPSpec輸出。
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號