用幽靈文字延伸測試並修正失敗的測試

已完成

當您的測試專案包含幾個測試案例後,GitHub Copilot 可以協助您擴展覆蓋範圍並解決失敗問題,而不必離開 Visual Studio Code。 幽靈文字建議會在你正在編輯的檔案中新增額外的測試案例,而測試總管和 /fixTestFailure 斜線指令則可協助你診斷及修正未通過的測試。 這些功能合起來,為你在聊天視窗中啟動的單元測試工作流程封閉了循環。

透過幽靈文字建議延長測試覆蓋範圍

Ghost text 是當你在編輯器中輸入時出現的行內程式碼補全。 當測試檔已經包含幾個測試案例時,GitHub Copilot 會利用現有模式建議類似的測試案例以支援其他情境。 這是在初步檢查完成後,延長保險覆蓋範圍最快的方法。

要擴充帶有幽靈文字的測試檔案:

  1. 開啟一個包含至少一到兩個完整測試案例的測試檔案。

  2. 將游標置於最後一個測試案例的末尾,按下 Enter 鍵即可開始新一行。

  3. 開始輸入新的測試方法,或撰寫描述性註解,例如 // Test that ProcessOrder throws when the order total is negative

    GitHub Copilot 會根據周圍程式碼、匯入資料及現有測試模式,顯示一個幽靈文字建議,完成測試方法。

  4. Tab 鍵接受建議,按 Esc 鍵則是拒絕。

  5. 視需要細化被接受的建議。 你可以繼續打字延長測試時間,或按下 Enter 鍵觸發下一個幽靈文字建議。

幽靈文字在以下情況下效果最佳:

  • 測試檔已經顯示你想GitHub Copilot遵循的模式(例如,Arrange-Act-Assert 結構或參數化測試屬性)。
  • 被測試的方法會透過 using 指令或匯入命名空間在檔案中被引用。
  • 你的留言清楚說明了你想測試的情境。

Tip

用幽靈文字快速為現有測試類別加入邊緣案例。 若需要較大規模的工作,例如建立全新的測試類別,請回到聊天視窗,並使用 Ask、Plan 或 Agent 代理。

從測試檔案總管修正測試失敗的問題

當測試失敗時,測試總管會提供一鍵開啟 GitHub Copilot 的入口。

  1. 你可以從測試檔案總管或測試方法旁的綠色播放按鈕執行測試。

  2. 在 Test Explorer 中,將滑鼠游標移至失敗的測試上方。

  3. 選擇 「修復測試失敗 」按鈕(閃爍圖示)。

    GitHub Copilot 會開啟一個聊天會話,將失敗的測試及其輸出作為上下文附加,並提出修正方案。

  4. 檢視建議的修正方案。

    建議可以根據故障原因更新應用程式程式碼、測試程式碼,或兩者同時更新。

  5. 套用或捨棄建議。

    保留 來套用建議的修改,或用 復原 功能丟棄它們。 請重跑測試以確認修復方法。

使用 /fixTestFailure 修復失敗的測試

你也可以從聊天視窗開始修正流程,這對於想附加額外上下文或同時處理多個失敗測試時非常有用。

  1. 開啟 [聊天] 檢視。

  2. 輸入 /fixTestFailure 斜線指令。

  3. 可選擇附加額外上下文,如相關原始檔案或近期終端輸出。

  4. 請依照 GitHub Copilot 的建議修復失敗的測試,然後重跑測試以確認修復。

讓代理程式自動監控並修正故障

當你使用 Agent 執行測試時,它會監控測試輸出,識別失敗,並自動嘗試修復並重跑測試。 這在你搭建新測試專案或同時影響多個測試的大型變更時非常有用。

使用代理程式進行自動測試維護:

  1. 打開聊天視窗,從代理人選擇器中選擇 代理人

  2. 提供包含執行測試的提示,例如: Run the xUnit tests in the Calculator.Tests project. If any tests fail, propose and apply fixes, then rerun the tests until they pass.

  3. 確認或拒絕代理所建議的工具呼叫與終端指令。

  4. 在接受變更前,請先審查代理人所套用的變更。

選擇適合工作的工具

請參考以下指引決定要使用哪個功能:

  • 當你想在已經顯示該模式的現有測試檔中加入更多測試案例時,幽靈文字是最佳選擇。
  • 在測試總管中修正測試失敗最適合在單一測試失敗時使用,並且可讓你快速進行聚焦的修正。
  • /fixTestFailure 在「聊天」檢視中 最適合用於你想加入更多背景資訊或逐一排查多個失敗情況時。
  • 由代理程式驅動的測試執行 最適合用在您想讓 GitHub Copilot 在單一工作階段中執行測試、診斷失敗原因,並跨多個檔案套用修正時。

這些工具共同完成單元測試的工作流程。 聊天視窗、計畫代理和代理會產生初始測試;幽靈文字補充額外報導;而修正-測試-失敗功能則能隨著程式碼演進,讓套件保持綠色。