使用计划和代理模式规划和自动执行测试工作流
上一单元使用代理模式,根据聊天视图中的单个提示词生成测试。 较大的测试任务通常需要更多结构:决定测试内容、搭建测试项目基架、跨多个文件生成测试以及运行生成的套件。 “聊天”视图中的计划智能体和较长的智能体会话专为该工作级别而设计。 在编写任何代码之前,使用计划代理设计测试策略,然后将批准的计划交给代理进行自治的多步骤实现。
比较“询问”智能体、“计划”智能体和“智能体”智能体
聊天视图提供三个内置的本地代理。 每一项都针对不同类型的测试任务进行了优化。
| Agent | 最适用于 | 单元测试中的典型用途 |
|---|---|---|
| 询问 | 有关您的代码的只读分析和问答 | 在编写任何代码之前,浏览边缘事例、框架选择或示例测试。 |
| Plan | 结构化的分步实施计划 | 设计一个多文件测试策略,供你在实施前审查。 |
| Agent | 自治的多文件编码工作流 | 直接将测试生成到测试项目中,运行测试,并针对失败结果进行迭代调整。 |
在“聊天”视图中,通过代理选择器选择一个代理。 可以在会话期间随时切换代理。
Important
在 Agent 模式下使用聊天视图时,GitHub Copilot 可能会发起多次高级请求,以完成单个任务。 高级请求既用于用户发起的提示,也用于代理代表你执行的后续操作。 使用的高级请求总数取决于任务的复杂性、步骤数和所选的模型。
使用计划代理设计测试策略
在编写任何代码之前,计划代理将生成详细的实施计划。 代理会研究你的任务,提出澄清的问题,并提出一个分步计划,你可以查看、优化和移交给代理。
规划一组单元测试:
打开包含要测试的代码的文件或文件。
打开聊天视图,然后从代理选取器中选择“ 计划 ”。 或者,键入
/plan,然后输入您的任务描述。输入用于描述您想要创建的测试的提示词。 例如:
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.回答任何澄清的问题。
计划代理可能会在起草计划之前询问测试框架首选项、命名约定或如何处理依赖项。
查看建议的计划。
该计划通常包括高级摘要、步骤细分、运行测试的验证步骤和记录的决策。 与 Plan 代理反复迭代,直到计划反映出你想要构建的内容。
移交计划以进行实施。
当计划最终确定后,选择开始实施选项。 可以在同一聊天会话中实现计划,也可以启动后台或云会话以自主处理实现。 还可以在编辑器中打开计划,以便进一步查看。
当测试任务涉及多个文件、需要新的测试类或测试夹具,或需要遵循说明中尚未涵盖的团队规范时,规划代理尤其有用。
使用代理自动执行测试工作流
智能代理可在你的工作区中自动执行多步骤任务。 对于单元测试,可以使用代理来搭建测试项目、创建测试文件、运行生成的测试、生成测试报告或修复测试运行过程中浮出水面的问题。
若要使用代理创建和运行单元测试,请执行以下操作:
打开包含要测试的代码的文件。
打开“聊天”视图,然后从代理选取器中选择 “代理 ”。
让代理确定上下文。
使用代理时,GitHub Copilot会自动标识相关文件。 还可以使用 “添加上下文 ”按钮附加其他上下文,也可以通过将文件拖动到“聊天”视图中。
(可选)选择 “工具” 图标以选择允许代理用于任务的工具。
用于测试任务的有用工具包括文件编辑工具、用于运行的
dotnet test终端工具以及任何扩展提供的测试工具。输入定义任务的提示。 例如:
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.监视工作中的智能体。
- 确认或拒绝代理建议的工具调用和终端命令。 例如,可以确认命令以运行测试或生成测试报告。
- 如果需要更改上下文、切换工具或调整任务的范围,请中断代理。
查看代理创建或更新的文件,然后保留或放弃更改。
如有必要,请使用后续提示来优化特定测试。
决定何时使用计划、代理或两者
使用以下指南在代理之间进行选择:
- 在测试工作涉及需要确认的含糊性、多个文件或团队约定时,请先使用计划代理。 该计划会变成一份在编写任何代码之前即可审阅的协议。
- 正确定义任务时直接使用代理,并且你希望GitHub Copilot在没有中间规划步骤的情况下搭建基架、生成和运行测试。
- 需要可查看计划以及自治实现时,使用计划,然后移交给智能体。 这种组合既能让您最大程度地控制范围,又能将相关工作自动化。