跳至內容

Elixir 測試洞察

Tuist 的 Hex 套件會在每次測試執行後上傳你的 Elixir 專案測試結果,讓你能直接在 Tuist 儀表板中查看測試效能與不穩定測試。

必要條件

回報你的測試執行#

共用設定會安裝測試整合。繼續使用 mix test,並保持相同的參數、輸出與結束碼:

bash
mix test test/my_app_test.exs:12 --trace

Tuist 會在執行結束後回報;不需要額外的測試別名。

你可以在 Tuist 儀表板中存取測試洞察,並觀察其隨時間的變化:

Phoenix 應用程式的測試儀表板

追蹤內容#

該套件會收集 ExUnit 的結果,包括:

  • 個別測試的通過/失敗狀態與耗時
  • 每個測試所屬的模組與 describe 區塊
  • 每個失敗的訊息與位置
  • 跨多次執行的不穩定測試偵測
  • 分支與提交,以及在持續整合環境中的提供者與執行
  • 在持續整合環境中,檢出的 Git 歷史記錄

文件測試會像其他測試一樣被回報。使用 --cover 時,也會上傳該次執行的行覆蓋率:請參閱 Elixir 程式碼覆蓋率。

Note

套件透過一個 ExUnit 格式器進行回報,並將其加入你已使用的格式器清單中。若你在命令列上傳入 --formatter,Mix 會取代整個清單,導致該次執行不會被回報,且任務會發出警告。

Git 歷史記錄#

在持續整合環境中,套件也會上傳檢出的提交歷史記錄:提交 SHA、其父提交、提交日期,以及該次執行與其拉取請求基礎分支所在的分支。不會上傳檔案內容、提交訊息或作者資訊。這能讓 Tuist 知道哪些提交已合併至你的預設分支,例如由合併佇列測試過的提交。套件會讀取檢出中已有的歷史記錄;若檢出中沒有基礎分支,則會向遠端查詢其最新提交(git ls-remote)。在非程式碼覆蓋率(--cover)的情況下,它不會抓取歷史記錄。

變數 效果
TUIST_GIT_UPLOAD_ENABLED=false 不會讀取或上傳任何 Git 歷史記錄。
TUIST_GIT_UNSHALLOW_ENABLED=false 僅讀取檢出內容,不會聯絡遠端。

疑難排解#

回報絕不會改變你的測試結果:若無法發送回報,執行會照常結束,且不會列印任何訊息。若要查看為何未發送回報,請設定 TUIST_DEBUG=1:

bash
TUIST_DEBUG=1 mix test