利用規劃模式與代理模式規劃並自動化測試工作流程

已完成

前一單元使用代理模式,從單一聊天視窗提示產生測試。 較大型的測試任務通常需要更多結構:決定要測試什麼、搭建測試專案、跨多個檔案產生測試,以及執行最終套件。 Chat 檢視中的 Plan 代理和較長的 Agent 工作階段,都是為了那種層級的工作而設計的。 在撰寫任何程式碼前,先使用計畫代理設計測試策略,然後將核准的計畫交給代理,進行自主且多步驟的實施。

比較 Ask、Plan 和 Agent 這三種代理

聊天視窗內建三個本地代理。 每個測試都針對不同類型的測試任務進行優化。

代理程式 最適合用於 單元測試的典型應用
詢問 唯讀分析與程式碼問答 在撰寫任何程式碼前,先探索邊緣案例、框架選擇或範例測試。
計劃 結構化、逐步執行計畫 設計一個多檔案的測試策略,讓你在實施前可以檢視。
Agent 自主多檔案編碼工作流程 直接在測試專案中產生測試、執行測試,並針對失敗案例反覆調整。

在聊天視窗中,從經紀人選擇器中選擇一位經紀人。 你可以在一次療程中隨時更換經紀人。

Important

當你用 Agent 的聊天檢視時,GitHub Copilot 可能會為了完成單一任務而提出多個高級請求。 進階請求同時適用於使用者主動發出的提示,以及代理代你執行的後續動作。 所使用的總高級請求取決於任務的複雜度、步驟數量以及你選擇的模式。

使用 Plan 代理設計測試策略

計畫代理會在撰寫任何程式碼前製作詳細的實施計畫。 代理人會研究你的任務,提出釐清問題,並提出逐步計畫,供你檢視、精煉並交給代理人。

規劃一組單元測試:

  1. 打開包含你想測試程式碼的檔案。

  2. 打開聊天室檢視,從代理人選擇器中選擇 「計畫 」。 或者,輸入 /plan 後面是你的任務描述。

  3. 輸入一個描述你想建立的測試的提示。 例如:

    I need unit tests for the methods in the Calculator class. Use xUnit. Include tests for success, failure, and boundary conditions. Place the new tests in the Calculator.Tests project.

  4. 請回答任何釐清的問題。

    計畫代理人可能會詢問測試框架偏好、命名慣例,或如何處理相依關係,然後再擬定計畫。

  5. 檢視擬議的計畫。

    計畫通常包含高層次摘要、步驟分解、測試驗證步驟及文件決策。 與規劃代理程式反覆迭代,直到計畫符合你想建構的內容。

  6. 交出執行計畫。

    當計畫最終確定時,選擇開始實施的選項。 你可以在同一個聊天會話中實作計畫,或者啟動背景或雲端會話,自主進行實作。 您也可以在編輯器中開啟設計圖進行進一步檢視。

當你的測試任務跨越多個檔案、需要新的測試類別或夾具,或需要符合尚未在說明書中捕捉到的團隊慣例時,Plan 代理特別有用。

使用 Agent 來自動化測試工作流程

代理程式能自動化你工作空間內的多步驟任務。 在單元測試方面,你可以使用代理程式架構測試專案、建立測試檔案、執行結果測試、產生測試報告,或修正測試執行中出現的問題。

要使用代理程式建立並執行單元測試:

  1. 開啟包含您要測試之程式代碼的檔案。

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

  3. 讓代理人來判斷上下文。

    當你使用代理程式時,GitHub Copilot 會自動識別相關檔案。 你也可以用 「新增情境 」按鈕或將檔案拖到聊天視窗來附加額外的上下文。

  4. 可選擇 工具圖示 ,選擇代理可使用的工具。

    用於測試任務的有用工具包括檔案編輯工具、執行 dotnet test終端機工具,以及任何擴充功能提供的測試工具。

  5. 輸入一個定義任務的提示。 例如:

    Ensure that a suitable unit test project is prepared for the selected code file. Create a test file in the unit test project that includes unit tests for all methods in the selected file. Unit tests should be written in C# and use the xUnit framework. Run the tests to ensure expected results.

  6. 監看代理程式運作時的狀態。

    • 確認或拒絕代理所建議的工具呼叫與終端指令。 例如,你可以確認執行測試或產生測試報告的指令。
    • 如果你需要更改上下文、切換工具或調整任務範圍,就中斷代理。
  7. 檢視代理建立或更新的檔案,然後保留或丟棄這些變更。

    如有需要,使用後續提示來精進特定測試。

決定何時使用計畫、代理程式,或同時使用兩者

請參考以下指引,選擇代理程式:

  • 當測試工作涉及模糊性、多重檔案或需要確認的團隊慣例時,請先使用計畫代理人。 計畫會變成一份合約,你可以在任何程式碼撰寫前先審查。
  • 直接使用 Agent 當任務定義明確且你希望GitHub Copilot能搭建、產生並執行測試而無需中間規劃步驟時。
  • 當你想要可供審查的計畫以及自主執行時,請使用 Plan,然後交由 Agent 處理。 這種組合讓你能在自動化工作同時,對範圍有最大控制。