跳至內容

Elixir 測試洞察

Tuist 嘅 Hex 套件會喺每次測試執行之後上載你 Elixir 項目嘅測試結果,令你可以直接喺 Tuist 儀表板入面查看測試表現同不穩定測試。

要求

匯報你嘅測試執行#

共用設定會安裝測試整合。繼續使用 mix test,參數、輸出同退出碼都保持不變:

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

Tuist 會喺測試執行完成時匯報;唔需要額外嘅測試別名。

你可以喺 Tuist 儀表板存取你嘅測試洞察,並查看佢哋隨時間嘅變化:

Phoenix 應用程式嘅測試儀表板

追蹤內容#

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

  • 個別測試嘅通過/失敗狀態同持續時間
  • 每個測試所屬嘅模組同 describe 區塊
  • 每次失敗嘅訊息同位置
  • 跨多次執行偵測不穩定測試
  • 分支同提交,以及喺持續整合環境下嘅提供者同執行
  • 喺持續整合環境下,檢出副本嘅 Git 歷史

Doctest 會好似其他測試一樣被匯報。使用 --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