IntelliJ IDEA:使用PHPUnit進(jìn)行測(cè)試

2019-03-31 18:45 更新

使用PHPUnit進(jìn)行測(cè)試

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

開始準(zhǔn)備

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

下載并安裝PHPUnit

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

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

手動(dòng)下載并安裝phpunit.phar

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

    • 除了能夠運(yùn)行PHPUnit測(cè)試之外,如果你還需要完整的編碼幫助,請(qǐng)將phpunit.phar存儲(chǔ)在項(xiàng)目的根目錄下,稍后PHPUnit將會(huì)使用到。

    • 如果您只需要運(yùn)行PHPUnit測(cè)試,并且不需要任何編碼幫助,則可以將phpunit.phar保存在項(xiàng)目之外。

使用Composer下載并安裝phpunit.phar

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

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

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

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

  4. 單擊“安裝”。

將PHPUnit與IntelliJ IDEA項(xiàng)目集成

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

自動(dòng)配置PHPUnit

  1. 將phpunit.xml或phpunit.xml.dist配置文件存儲(chǔ)在項(xiàng)目根目錄下。

  2. 使用Composer安裝PHPUnit。

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

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

手動(dòng)配置PHPUnit

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

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

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

    • 要將PHPUnit與遠(yuǎn)程PHP解釋器一起使用,請(qǐng)?jiān)诖蜷_的對(duì)話框中選擇一個(gè)配置:

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

    • 要使用Composer自動(dòng)加載器,請(qǐng)?jiān)趘endor文件夾中指定autoload.php文件的路徑。

    • 要從phpunit.phar運(yùn)行PHPUnit ,請(qǐng)下載phpunit.phar,將存檔保存在項(xiàng)目根文件夾中,并指定它的路徑。

      單擊重新加載按鈕時(shí),IntelliJ IDEA會(huì)檢測(cè)并顯示PHPUnit版本。

    • 要從PEAR運(yùn)行PHPUnit,請(qǐng)將PEAR配置為包含路徑。

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

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

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

為類生成PHPUnit測(cè)試

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

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

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

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

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

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

    創(chuàng)建新的phpunit測(cè)試對(duì)話框

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

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

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

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

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

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

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

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

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

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

生成PHPUnit測(cè)試方法

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

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

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

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

您可以在“設(shè)置/首選項(xiàng)”對(duì)話框(Ctrl+Alt+S)的"文件和代碼模板" 頁上自定義用于生成 PHPUnit 測(cè)試方法的代碼模板。要快速訪問此頁面,請(qǐng)?jiān)凇吧伞绷斜碇?,從方法的子菜單中選擇“編輯模板”。

編輯PHPUnit方法模板

運(yùn)行和調(diào)試PHPUnit測(cè)試

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

運(yùn)行或調(diào)試PHPUnit測(cè)試操作步驟

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

    ps_test_frameworks_phpunit_launch_tests.png

    IntelliJ IDEA生成默認(rèn)運(yùn)行配置并使用它啟動(dòng)運(yùn)行/調(diào)試測(cè)試會(huì)話。

運(yùn)行或調(diào)試單個(gè)測(cè)試

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

運(yùn)行一系列測(cè)試

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

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

    運(yùn)行一系列測(cè)試
  3. 按下Ctrl+Shift+F10以運(yùn)行測(cè)試選擇。

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

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

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

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

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

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

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

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

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

IntelliJ IDEA在“運(yùn)行工具”窗口的“測(cè)試運(yùn)行器”選項(xiàng)卡中顯示測(cè)試執(zhí)行結(jié)果。

ps_test_result_phpunit.png

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

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

自動(dòng)運(yùn)行PHPUnit測(cè)試

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

自動(dòng)配置重新運(yùn)行測(cè)試的操作步驟如下所示:

  1. 運(yùn)行測(cè)試。

  2. 在“測(cè)試運(yùn)行程序”選項(xiàng)卡上,按下工具欄上的切換按鈕ps_icon_phpunit_run_test_automatically.png

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

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)