IntelliJ IDEA:使用PHPUnit進行測試

2019-03-31 18:45 更新

使用PHPUnit進行測試

此功能僅在Ultimate版本中受支持。
IntelliJ IDEA通過與PHPUnit測試框架集成,支持PHP應(yīng)用程序的單元測試。

開始準(zhǔn)備

  1. 確保已安裝并啟用了PHP插件。該插件未與IntelliJ IDEA捆綁在一起,但可以從JetBrains插件存儲庫中安裝。
  2. 確保在PHP頁面上的IntelliJ IDEA中配置了PHP解釋器,如配置本地PHP解釋器配置遠(yuǎn)程PHP解釋器中所述。

下載并安裝PHPUnit

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

提示:Composer 是 PHP5.3以上 的一個依賴管理工具。它允許你聲明項目所依賴的代碼庫,它會在你的項目中為你安裝他們。Composer 不是一個包管理器。

手動下載并安裝phpunit.phar

  • PHPUnit官方網(wǎng)站下載phpunit.phar并將其保存在您的計算機上: 

    • 除了能夠運行PHPUnit測試之外,如果你還需要完整的編碼幫助,請將phpunit.phar存儲在項目的根目錄下,稍后PHPUnit將會使用到。

    • 如果您只需要運行PHPUnit測試,并且不需要任何編碼幫助,則可以將phpunit.phar保存在項目之外。

使用Composer下載并安裝phpunit.phar

  1. 從composer.json的上下文菜單中,選擇:Composer|管理依賴關(guān)系。或者從主菜單選擇:工具|Composer|管理依賴項。

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

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

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

  4. 單擊“安裝”。

將PHPUnit與IntelliJ IDEA項目集成

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

自動配置PHPUnit

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

  2. 使用Composer安裝PHPUnit。

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

您可以手動配置PHPUnit。如果使用遠(yuǎn)程PHP解釋器,則需要手動配置。

手動配置PHPUnit

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

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

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

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

      ps_settings_php_test_frameworks_phpunit_choose_php_interpreter.png
  2. 在右側(cè)窗格中,選擇PHPUnit庫安裝類型:

    • 要使用Composer自動加載器,請在vendor文件夾中指定autoload.php文件的路徑。

    • 要從phpunit.phar運行PHPUnit ,請下載phpunit.phar,將存檔保存在項目根文件夾中,并指定它的路徑。

      單擊重新加載按鈕時,IntelliJ IDEA會檢測并顯示PHPUnit版本。

    • 要從PEAR運行PHPUnit,請將PEAR配置為包含路徑。

      安裝過程取決于您使用的操作系統(tǒng)和系統(tǒng)設(shè)置。

  3. 在“測試運行程序”區(qū)域中,指定用于啟動和執(zhí)行方案的配置XML文件。
    默認(rèn)情況下,PHPUnit在項目根文件夾或config文件夾中查找phpunit.xml配置文件。您可以指定自定義配置文件。

    您還可以鍵入引導(dǎo)程序文件的路徑,以便在啟動測試之前始終執(zhí)行PHP腳本。在該字段中,指定腳本的位置。手動鍵入路徑,或單擊browseButton.png并在打開的對話框中選擇所需的文件夾。

為類生成PHPUnit測試

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

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

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

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

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

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

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

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

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

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

    • 測試類的名稱。IntelliJ IDEA自動將生產(chǎn)類名稱中的名稱組合為<production class="">test. 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è)置,然后單擊“確定”以啟動測試生成。

測試準(zhǔn)備就緒后,您可以通過選擇:導(dǎo)航|轉(zhuǎn)到測試主題,以導(dǎo)航回生產(chǎn)類。

生成PHPUnit測試方法

  1. 在編輯器中打開所需的測試類,并將插入符放置在類定義中的任何位置。

  2. 在上下文菜單中選擇“生成”或按Alt+Insert。然后從“生成”列表中選擇“測試方法”。

  3. 設(shè)置測試夾具,即為測試開始前模擬所需環(huán)境的代碼生成存根,并在測試結(jié)束后返回原始環(huán)境:

    • 在上下文菜單中選擇“生成”或按Alt+Insert。然后從“生成”列表中選擇“設(shè)置方法”或“拆卸方法”。

您可以在“設(shè)置/首選項”對話框(Ctrl+Alt+S)的"文件和代碼模板" 頁上自定義用于生成 PHPUnit 測試方法的代碼模板。要快速訪問此頁面,請在“生成”列表中,從方法的子菜單中選擇“編輯模板”。

編輯PHPUnit方法模板

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

您可以運行和調(diào)試單個測試以及整個文件和文件夾中的測試。IntelliJ IDEA使用默認(rèn)設(shè)置創(chuàng)建運行/調(diào)試配置,并啟動測試。您可以稍后保存此配置以供進一步重復(fù)使用。

運行或調(diào)試PHPUnit測試操作步驟

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

    ps_test_frameworks_phpunit_launch_tests.png

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

運行或調(diào)試單個測試

  • 在編輯器中打開測試文件,右鍵單擊測試的調(diào)用,然后從上下文菜單中選擇,Run'<test_name>' 或,Debug'<test_name>'。

運行一系列測試

  1. 在編輯器中打開目標(biāo)文件,右鍵單擊所需的測試目標(biāo),即正在測試的類或方法,然后選擇:轉(zhuǎn)到|測試,或按Ctrl+Shift+T。

  2. 從彈出菜單中,選擇要執(zhí)行的測試。對于多個選擇,使用Ctrl(?用于macOS)和Shift鍵。

    運行一系列測試
  3. 按下Ctrl+Shift+F10以運行測試選擇。

測試會話結(jié)束后,IntelliJ IDEA會自動創(chuàng)建運行/調(diào)試配置,并將其測試范圍設(shè)置為Composite。

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

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

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

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

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

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

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

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

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

ps_test_result_phpunit.png

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

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

自動運行PHPUnit測試

當(dāng)受影響的代碼發(fā)生更改時,您可以自動重新運行IntelliJ IDEA測試。此選項根據(jù)運行/調(diào)試配置進行配置,可以應(yīng)用于測試,測試文件,文件夾或復(fù)合選擇的測試,具體取決于此運行/調(diào)試配置中指定的測試范圍。

自動配置重新運行測試的操作步驟如下所示:

  1. 運行測試。

  2. 在“測試運行程序”選項卡上,按下工具欄上的切換按鈕ps_icon_phpunit_run_test_automatically.png

    ps_phpunit_enable-自動test.png
  3. (可選)單擊設(shè)置按鈕按鈕并設(shè)置在代碼更改時啟動測試的時間延遲:

    ps_phpunit_set-自動測試delay.png
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號