溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

在PhpStorm中通過PHPUnit進行單元測試的簡單示例

發(fā)布時間:2021-09-13 18:09:37 來源:億速云 閱讀:142 作者:chen 欄目:大數(shù)據(jù)

這篇文章主要介紹“在PhpStorm中通過PHPUnit進行單元測試的簡單示例”,在日常操作中,相信很多人在在PhpStorm中通過PHPUnit進行單元測試的簡單示例問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”在PhpStorm中通過PHPUnit進行單元測試的簡單示例”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

對指定目錄、類、方法運行測試

Laravel 自帶的測試演示類位于項目根目錄下的 tests 子目錄中。在 PhpStorm 中,該目錄會被自動標記為綠色,表示是測試目錄:

在PhpStorm中通過PHPUnit進行單元測試的簡單示例  

在 PhpStorm 中基于 PHPUnit 進行單元測試很簡單,PhpStorm 已經(jīng)內(nèi)置了通過本地 PHPUnit 運行測試用例的支持(Laravel 項目初始化的時候已經(jīng)安裝了 phpunit 依賴,PhpStorm 會基于這個 phpunit 對項目進行單元測試),無需額外配置,只需要選中待測試目錄、文件、方法,然后在右鍵下拉菜單選擇 Run Test 即可(前提是先要編寫好對應(yīng)的測試用例代碼):

在PhpStorm中通過PHPUnit進行單元測試的簡單示例  

測試結(jié)果會顯示在 PhpStorm 下方的 Run 窗口中:

在PhpStorm中通過PHPUnit進行單元測試的簡單示例  

如果你的 PhpStorm 版本較老,不能自動識別 PHPUnit 并創(chuàng)建對應(yīng)的測試框架配置,可以在 Preferences | Languages & Frameworks | PHP | Test Frameworks 界面(Windows 系統(tǒng)請將 Preferences 替換成 Settings)手動創(chuàng)建,創(chuàng)建的時候選擇 PHPUnit Local,然后再:

在PhpStorm中通過PHPUnit進行單元測試的簡單示例  

腳本路徑映射到當前項目根目錄下的 vendor/autoload.php,配置文件映射到當前項目根目錄下的 phpunit.xml。

如果你想要使用其他測試框架(Behat、PHPSpec、Codeception等),也是在這里創(chuàng)建對應(yīng)的測試框架配置:

在PhpStorm中通過PHPUnit進行單元測試的簡單示例  

要對指定文件進行測試,還可以在打開該文件的代碼編輯區(qū)域任意位置右鍵,選擇運行該文件的測試代碼:

在PhpStorm中通過PHPUnit進行單元測試的簡單示例  

或者在聲明該測試類所在行的左側(cè)點擊綠色的運行測試圖標進行測試:

在PhpStorm中通過PHPUnit進行單元測試的簡單示例  

對于指定方法的測試也可以這么做:

在PhpStorm中通過PHPUnit進行單元測試的簡單示例  

測試成功,運行結(jié)果是綠色提示,測試失敗,則是紅色提示:

在PhpStorm中通過PHPUnit進行單元測試的簡單示例  

并且會標識出錯的原因和位置,方便排查。

 

PHPUnit 代碼覆蓋率分析

在上面運行測試用例的時候,細心的同學(xué)可能已經(jīng)看到在下拉菜單中除了運行測試的選項外,還有一個包含覆蓋率的測試選項:

在PhpStorm中通過PHPUnit進行單元測試的簡單示例  

PHPUnit 的代碼覆蓋率分析使用了 PHP_CodeCoverage 這個組件,而這個組件又使用了 PHP Xdebug 擴展所提供的代碼覆蓋率功能,所以要使用代碼覆蓋率功能,需要先安裝 Xdebug 擴展,如果系統(tǒng)沒有安裝該擴展,可以參考前面安裝配置 Xdebug 擴展的教程進行安裝和設(shè)置。

為了告訴 PHPUnit 哪些源代碼文件要包含在代碼覆蓋率報告中,必須配置白名單。Laravel 自帶的 phpunit.xml(位于項目根目錄下)中已經(jīng)包含了這個配置:

<filter>
    <whitelist processUncoveredFilesFromWhitelist="true">
        <directory suffix=".php">./app</directory>
    </whitelist>
</filter>
 

上述配置表明 app 目錄下的所有后綴為 .php 的 PHP 代碼都會包含到代碼覆蓋率報告中,即使某些文件沒有被測試用例覆蓋到,同時還可以知道未被覆蓋文件中有哪些行是可執(zhí)行的,另外,你還可以配置跳過哪些代碼塊,更多設(shè)置細節(jié)請參考 PHPUnit 官方文檔。

我們在 tests 目錄上運行包含代碼覆蓋率的測試,運行完成后,PhpStorm 右側(cè)區(qū)域會彈出包含本次測試代碼覆蓋率分析的窗口:

在PhpStorm中通過PHPUnit進行單元測試的簡單示例  

點擊 app 目錄進去,可以看到所有子目錄的代碼覆蓋率情況:

在PhpStorm中通過PHPUnit進行單元測試的簡單示例  

另外,我們點擊左側(cè) Project 區(qū)域,展開項目目錄結(jié)構(gòu)樹,也可以看到測試代碼覆蓋率:

在PhpStorm中通過PHPUnit進行單元測試的簡單示例  

而在代碼編輯區(qū),可以看到被覆蓋的代碼左側(cè)有綠色長條,未被覆蓋到的代碼左側(cè)是紅色長條。

 

到此,關(guān)于“在PhpStorm中通過PHPUnit進行單元測試的簡單示例”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI