Elixir 測試洞察
Tuist 的 Hex 套件會在每次測試執行後上傳你的 Elixir 專案測試結果,讓你能直接在 Tuist 儀表板中查看測試效能與不穩定測試。
必要條件
回報你的測試執行#
共用設定會安裝測試整合。繼續使用 mix test,並保持相同的參數、輸出與結束碼:
bash
mix test test/my_app_test.exs:12 --trace
Tuist 會在執行結束後回報;不需要額外的測試別名。
你可以在 Tuist 儀表板中存取測試洞察,並觀察其隨時間的變化:

追蹤內容#
該套件會收集 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