微軟於7月31日發布了一款名為 code-testing-generator 的開源智能體,能夠為任意編程語言自動生成單元測試。
該智能體會先學習用戶的代碼倉庫,然後自主規劃、編寫並驗證測試用例,確保其有效可用。目前該智能體僅支持單元測試的生成,集成測試、端到端測試、瀏覽器測試和性能測試暫不在其能力範圍之內。
智能體通過"研究-規劃-實施"(RPI)流水線來協調測試生成工作。首先,智能體會掃描代碼倉庫,找出需要測試的代碼,識別所用編程語言和測試框架,參考已有測試用例,並確定正確的構建與運行命令。
隨後,智能體會根據任務規模從三種執行路徑中選擇最合適的一種:
直接模式:讀取相關代碼,直接編寫測試並驗證結果。
單次模式:完成一次研究和規劃後,按照既定方案執行。
疊代模式:循環執行上述流程,以覆蓋較大規模的需求或達到特定的覆蓋率目標。
確定路徑後,智能體會從結構簡單的代碼入手,逐步處理依賴關係更複雜的代碼,並將每個行為映射到對應的測試文件。測試編寫完成後,智能體還會對生成的測試進行質量檢驗,具體包括以下幾個方面:
模擬對代碼進行微小修改,驗證測試是否會相應失敗;
檢查斷言是否存在缺失或不夠嚴格的情況;
確認每一個待測場景均有對應的測試用例;
構建完整工作區並運行全套測試套件;
確認倉庫的測試命令能夠成功識別新生成的測試。
code-testing-generator 智能體已以 dotnet-test 插件的形式發布於 GitHub 上的 dotnet/skills 倉庫中。該插件可在 GitHub Copilot CLI 中使用,同時也以預覽功能的形式支持在 Visual Studio Code 及 VS Code Insiders 中通過插件方式調用。
Q&A
Q1:code-testing-generator 智能體目前支持哪些類型的測試?
A:目前該智能體僅支持生成單元測試,集成測試、端到端測試、瀏覽器測試和性能測試均不在其當前支持範圍內。微軟表示未來可能會擴展更多測試類型。
Q2:code-testing-generator 智能體的 RPI 流水線是怎麼工作的?
A:RPI 即"研究-規劃-實施"流水線。智能體首先掃描代碼倉庫,識別編程語言、測試框架和構建命令;然後根據任務大小選擇直接、單次或疊代三種執行模式之一;最後從簡單代碼開始逐步編寫測試,並在完成後自動進行質量驗證,包括檢查斷言完整性、運行全套測試套件等。
Q3:code-testing-generator 智能體在哪裡可以使用?
A:該智能體以 dotnet-test 插件形式發布在 GitHub 的 dotnet/skills 倉庫中,支持在 GitHub Copilot CLI 中使用,同時也可以通過插件方式在 Visual Studio Code 和 VS Code Insiders 中調用,目前該功能處於預覽階段。






