文件编辑
文件编辑模式具备多文件代码修改的能力,当开发者需要精准地修改代码文件时,能够结合需求描述和当前工程环境进行多文件修改,并且可以进行多次迭代、代码审查,帮助开发者高效、可控地完成代码修改任务。
文件编辑模式为原 AI 程序员模块,可在 VS Code、JetBrains IDEs 中,将通义灵码插件升级到 2.5.0 或以上版本后体验。
文件编辑模式具备以下核心能力:
工程级变更:可根据开发者的任务描述,进行工程内多个代码文件修改,同时可通过多次对话进行逐步迭代或快照回滚,开发者与通义灵码协同逐步完成编码任务。
精确编辑:在开发者提供的上下文范围内完成代码文件修改,不会做出超出开发者预期的修改。
快速执行:严格遵循开发者的任务描述和提供的上下文,进行代码文件修改,无需进行额外的复杂任务计划,相比智能体模式完成任务更加迅速。
工具使用:拥有文件读取、工程内语义检索、文件编辑等代码修改相关工具使用能力,可帮助开发者快速完成代码修改。
多文件代码修改
文件编辑模式可以帮助开发者快速完成一个研发任务的多个文件的代码修改工作。在使用文件模式时,可以遵循以下几点建议:
清晰的需求描述:首先需要澄清我们需要修改哪些代码和要求,建议包含一个明确的目标,并通过步骤式的结构化描述,详细地描述您期望完成的编码任务要求。
指定需要的上下文:选择代码文件、图片、codebase、codeChanges 等上下文,明确需要进行修改的范围、要求、可参考的内容等,可以让通义灵码更加精准地了解您的意图,生成最佳的方案和建议代码。
明确生成要求:告诉通义灵码在生成代码修改建议时,您期望它遵循的要求,比如语言、规范、格式、变更目标等,如“生成变更时,同时为每个方法生成英文注释”。工程级通用的要求也可以配置到 Lingma Rules 文件中保存,详情可参考:AI 规则设置。
善用快照功能:当 AI 生成内容不符合预期,或您的需求有变化时,可以通过快照功能回退到之前的对话轮次和代码变更,继续重新提问。
文件级单元测试生成(UnitTest)
单元测试智能体是文件编辑模式所具备的一种专项能力,可以针对代码变更(#codeChanges)、单个或多个代码文件批量生成单元测试文件。开发者输入被测内容、生成要求,即可自动生成测试计划、测试用例、编译、运行以及根据错误信息进行自动修复,大幅提升测试用例覆盖度和用例的生成质量,降低开发者编写单元测试用例的成本。
目前仅在 IntelliJ IDEA 中支持当前单元测试生成和交互方式。
选择被测代码并输入要求
打开智能会话窗口并切换到文件编辑模式,在输入框内单击 ➕ 或者输入 #
即可选择需要的相关上下文,并输入相关的指令要求(建议输入和生成单元测试相关要求的内容),输入完成后发送即可,通义灵码会自动感知意图,开始进入生成单元测试的流程。
选择和确认环境信息
收到测试要求后,通义灵码会自动检测本地环境 Java 版本、构建工具、测试框架、Mock 框架等信息,如果检测到多个版本,开发者可主动选择需要的版本;如果无法识别,将看到提示错误,单击“如何修复”按钮,开发者可以进一步了解如何配置相关组件。
确定被测方法
环境信息检查通过后,通义灵码将自动分析被测文件,并生成测试计划,开发者可以主动选择需要覆盖的方法,选择并确认完成后,单击确定按钮,即可开始为每个方法生成单元测试用例。
每次至少选择 1 个方法为其生成测试用例,最多选择 20 个方法;
选择方法后,会提示整体生成过程预计需要的时间,以供参考。
查看生成进展
在确定被测方法后,通义灵码将自动根据开发者选择的被测方法进行单测用例生成工作,并自动对生成的结果进行编译、运行和自动修复。最终的结果会展示在界面中,状态及释义如下:
状态 | 图标含义 |
代表运行通过的用例 | |
代表编译通过但运行失败的用例 | |
代表编译失败的用例 |
当所有方法的用例生成完成后,通义灵码自动将编译通过和运行通过的用例合并成最终测试用例文件,并根据被测文件自动进行命名。对于编译失败的测试用例代码,开发者可自行选择是否需要,所有用例代码确认后,可单击完成按钮,测试用例文件将自动与原测试用例文件进行差异对比。
审查、接受测试用例文件代码
确认完成后,测试用例文件会出现在工作区中,开发者可单击工作区的查看变更按钮或单击文件列表中的某文件,即可看到对应文件的变更对比查看视图(Diff View),开发者可进行审查、局部修改、接受或拒绝部分代码等。确认所有代码变更后,单击接受按钮,测试用例文件变更代码将正式进入到当前代码工程。