PHPStorm 遠端執行單元測試

我的團隊在開發階段中,習慣以 rsync 將本機上的程式碼同步至 測試機 上運行。
因此替功能撰寫測試案例後,必須經過一些設定才能 遠端執行測試案例。
以下將提供 PHPStorm 遠端執行測試案例 配置步驟,包含:
  • 新增遠端部署(Development) 設定
  • 新增遠端 PHP CLI 執行器 (Interpreter)
  • 新增一個遠端調試器(Debugger)

1. 新增遠端部署(Development) 設定

第一個步驟是設定遠端部署,主要目的有兩個:
  • 讓 PHPStorm 可以透過 ssh 連接至遠端伺服器(測試機),執行測試案例。
  • 設定專案路徑配對,讓 PHPStorm 可以對應「你的本機程式碼位置」與「測試機程式碼位置」。
只要配對好 Development 設定,PHPStorm 就可以直接在測試機上執行 你所指定的測試案例(後面會示範)。

1.1 打開遠端部署(Development)設定介面

遠端部署(Development)的打開步驟依序為:Tools>Development>Configuration:

1.2 設定 ssh 連線資訊

打開遠端部署(Development)設定介面後,你會看見預設第一個頁籤為 Connection。
Connection 頁籤要設定的是如何讓 PHPStorm 連線登入至遠端伺服器(測試機),
以下是必要設定說明:
  • Type:選擇 SFTP
  • Host:要連接的 Domain Name
  • User name:登入遠端伺服器的 User
  • Authentication:ssh 認證方式(可參考 SSH 公開金鑰認證)
  • Private key path:私鑰位置 (可參考 SSH 公開金鑰認證)
  • Root path:遠端伺服器中,專案的根目錄路徑(此為遠端伺服器上的絕對路徑)。
    • 此設定相當重要,用來對映本地與遠端程式碼。若沒做好對映,後續 PHPStorm 會沒辦法辨認你要執行哪個測試案例。
  • Web server URL:遠端伺服器的對外 URL

1.3 設定專案檔案對映(Mappings)資訊

Connection 頁籤設定完成後,接著進入第二個頁籤 Mappings。
Mappings 頁籤用來設定「本機專案」與「遠端專案」的檔案對映關係。
必須設定的項目有:
  • Local path: 專案根目錄路徑(本機的絕對路徑)
  • Development path: 遠端主機的專案根目錄(注意,此為 Connection 頁籤之 Root path 的相對路徑)
完成檔案對映資訊後,PHPStorm 就能辨認你的本機檔案是對映至遠端伺服器的哪個檔案。

2. 新增遠端 PHP CLI 執行器(Interpreter)

注意:執行此步驟前,必須元成第一個步驟 1.新增遠端部署(Development)設定,否則無法進行下去。
此一步驟的目的是:讓 PHPStorm 調用遠端伺服器的 PHP 執行檔 來啟動 測試案例。

2.1 打開 PHP 設定頁面

  • Mac:PHPStorm 左上角,依序點擊 PHPStorm>Preferences>Language & Framework>PHP
  • Windows:左上角,依序點擊 >Files>Settings>Language & Framework>PHP
接著就能看見 PHP 設定頁面:

2.2 打開新增 PHP-CLI Interpreter 的介面

於 2.1 打開 PHP 設定頁面後,依照下圖順序,打開新增 PHP-CLI Interpreter 的介面:

2.3 設定 Remote PHP Interpreter

若按照步驟 2.2 操作,即可 PHPStorm 跳出新的視窗「Configuration Remote PHP Interpreter」。
這一步驟即需要完成兩項設定:
  • 設定 PHPStrom 如何連線至遠端伺服器
  • 配置遠端伺服器的 PHP 執行檔 當作 CLI Interpreter。
若您已經完成 1.新增遠端部署(Development)設定,則可以選擇 Development Configuration 選項來替 PHPStrom 設定連線至遠端伺服器的方式。
最後 PHP Interpreter path 則需填入 遠端伺服器的 PHP 執行檔 路徑(實體路徑)。
設定完成後,點擊 OK。
此時回到原本 PHP 設定頁面,若出現一個 Remote PHP xxx 的 CLI 設定檔,即表設定成功。

3. 新增一個遠端調試器(Debugger)

最後一個步驟,替測試案例新增一個遠端調試器(Debugger)。

3.1 打開 Debugger 設定畫面

打開 Debugger 設定畫面,並點擊 Edit Configuration:

3.2 打開測試框架的 Interpreter 設定畫面

請一下圖順序,打開新增 PHPUnit 測試框架的 Remote Interpreter 畫面。

3.3 設定 PHPUnit Remote Interpreter

若您已經完成 步驟2. 新增遠端 PHP CLI 執行器(Interpreter),則可以在 Interpreter 選單中選擇剛剛建立的 Remote PHP xxx。
注意:上圖中的 Default configuration file 是遠端伺服器的 phpunit.xml 路徑

3.4 設定完成

全部設定完成!
執行測試後,即可看見當前是在遠端伺服器中執行測試:
​

留言

  1. 您好,您的文章很詳細,謝謝您的分享

    想請問您的團隊選擇使用 rsync 同步程式的考量是什麼呢?是因為為了節省下載流量成本嗎?有機會可以稍微分享您的做法嗎?謝謝

    另外想請問本文所說可以透過 PHPStorm 執行遠端專案跑測試,這樣測試跑起來在 IDE 的呈現上會慢嗎?謝謝您

    回覆刪除
    回覆
    1. 當初開發團隊使用 rsync 單純是因為我們有一台測試機,在測試機裡面放置每個人開發中的專案讓 PM 隨時可以進行測試。

      而我是為了降低團隊學習測試的成本,才去研究怎麼讓 PHPStorm 進行遠端單元測試。

      另外,用 PHPStrom 遠端執行測試的效果其實跟 local 差不多,很即時並不會有卡頓的現象。
      如果真的會變慢的話,可能的原因有兩個:
      1. local 和遠端之間的網路連線速度很慢
      2. 遠端機器的等級很低,造成運行速度緩慢

      刪除
  2. Hotel & Casino - Mapyro
    The cheapest 서귀포 출장샵 way to get from Golden Gate Station Casino 구미 출장샵 & Hotel to 익산 출장샵 Golden Gate Station 천안 출장안마 Casino & Hotel costs only $6, and the quickest way takes just 19 충청북도 출장안마 mins.

    回覆刪除

張貼留言

這個網誌中的熱門文章

Git Commit Message 這樣寫會更好,替專案引入規範與範例

探討單元測試和整合測試的涵蓋範圍

Gitlab 合併請求 Merge Request 是什麼?