快速上手驭码CodeRider二

发布于:2025-06-12 ⋅ 阅读:(34) ⋅ 点赞:(0)

7.单测生成

在这里插入图片描述

7.1 基于Loom模式生成单测[VSCode Only]

效果最好的单测生成方式是使用agent模式(CodeRider Loom模式),可以获取更多与源代码相关的上下文,自动创建单测文件、自动添加依赖配置、自动修复错误。效果最佳,但需要大参数模型,最低要求72B参数模型,推荐600B以上参数的超大模型,成本较高。
注意:基于Loom模式生成单测,适用于给一个新项目引入单元测试,没有给该项目配置单测所需的框架、依赖,也不知道如何使用这些单测框架。
操作步骤:

  1. 打开 CodeRider Loom。
  2. 输入#号,搜索UserOperateModel.java文件并选中该文件。
  3. 输入“使用junit框架生成单元测试”。
    在这里插入图片描述
    4.CodeRider Loom会自动创建对应的单测文件夹、单测文件,并在Pom文件中添加依赖库。
    在这里插入图片描述
    5.CodeRider Loom会请求运行单测文件,若运行报错,Loom会尝试自动修复该问题,再次运行。
    在这里插入图片描述
    6.您可以通过多轮对话让CodeRider Loom进一步提高单元测试的覆盖率,如在Loom中按#号选中指定的单测文件后输入“提高单元测试覆盖率”。也可以解决一些单测生成中的问题,但AI未必能修复所有错误,必要时还需人工介入来处理错误。
  4. 您也可以让CodeRider Loom批量生成单元测试,如在Loom中按#号,选择文件夹ruoyi-admin/src/main/java/com/ruoyi/web/controller/demo/domain,输入“生成单元测试”。CodeRider会对该目录下的所有文件逐个生成单元测试。但需注意文件不宜过多,过多的文件容易导致上下文越界,同时AI生成的内容越多,出错的几率越大,需要处理错误的成本和复杂度越高。
    在这里插入图片描述
    在这里插入图片描述

7.2 基于inline模式生成单测

性价比最高的方式是使用inline模式生成单测,可使用32B的中小模型,将源代码的依赖关系作为上下文用于生成单测文件。对于引用库错误,方法类型识别错误有较好改善,可有效提高单测的可运行率。
inline模式会自动创建单测文件,但需要确认单测文件是否处于正确的文件路径。此外也需要一部分人工调整工作,如添加依赖配置(pom文件),修复少量错误,调整测试用例等。
此外inline模式只能提高单测的可运行率,但不保障每个单测用例都能正确执行,也不保障有较高的覆盖率。可通过多轮问答结合人工处理,要求CodeRider修复错误的用例或补充更多单测用例以提高覆盖率。
基于inline模式生成单测,适合项目中已经有单测框架,给一些新代码文件编写单元测试。
操作步骤:
1.提前添加单测所需的依赖配置 ruoyi-admin/pom.xml。
在这里插入图片描述
2. 提前创建好用于存放单测文件的目录,如ruoyi-admin/src/test/java/com/ruoyi/web/controller/demo/domain。
3. 若您使用JetBrains,需将用于存放单测文件的目录,如ruoyi-admin/src/test右键标记为“测试源代码目录”。
在这里插入图片描述
4. 使用inline模式对ruoyi-admin/src/main/java/com/ruoyi/web/controller/demo/domain/UserOperateModel.java生成单测,CodeRider会自动将单测文件创建到对应的文件夹中,若文件路径错误,需要手动将单测文件移动到正确路径中。
在这里插入图片描述
在这里插入图片描述
5.运行单测文件cd ruoyi-admin && mvn test。若有报错,可选中单测文件UserOperateModelTest.java或使用#号添加该文件,并将错误信息提供给CodeRider,CodeRider会给出修改意见,人工调整后单测可顺利运行。
在这里插入图片描述
在这里插入图片描述
6. 若您希望提升单测覆盖率,可以先使用line模式给指定代码生成单测,运行通过后可以对该文件或该文件中的某个函数再次生成单测,CodeRider会增加测试用例以提高覆盖率。但由于当前AI技术限制,AI生成的测试用例越多,出现错误的几率越大,需要更多的人工介入以解决问题。
注:提升覆盖率功能仅在VSCode下生效,JetBrains中再次生成单测会覆盖旧的单测文件。也欢迎您对这两种模式提出反馈。
在这里插入图片描述
在这里插入图片描述

7.3 基于普通对话模式生成单测

CodeRider已经淘汰了基于普通对话模式生成单测,这类方式获取源代码的上下文有限,容易导致引用库错误,方法类型识别错误,生成的单测可运行率很低,需要人工处理大量的错误。
以国内某AI编程助手为例,对ruoyi-admin/src/main/java/com/ruoyi/web/controller/demo/domain/UserOperateModel.java生成单测,引用库与当前项目所配置的测试框架不匹配,出现很多报错,需要人工介入处理。
在这里插入图片描述

8. 代码评审

在这里插入图片描述

8.1 IDE侧代码预审核

在IDE侧对于本地更变的文件进行AI评审,常用于开发人员自评审。
使用说明:
1.VS Code

  1. 需要本地代码有变更。
  2. 参考下图指示1进入“源代码管理”页面。
  3. 参考下图指示2双击变更的文件,打开文件对比页面。
  4. 参考下图指示3点击“CodeRider预评审”。
    在这里插入图片描述
  5. JetBrains / Android Studio
    需要本地代码有变更。
    参考下图指示1进入“源代码管理”页面。
    参考下图指示2双击变更的文件,打开文件对比页面。
    参考下图指示3点击“CodeRider预评审”。
    在这里插入图片描述
    操作步骤:
  6. 基于需求生成代码章节在本地变更的代码文件,进行代码预评审,CodeRider会对Diff文件进行Review并给出评审意见。
    在这里插入图片描述

8.2 合并请求助手

CodeRider支持在IDE插件中查看当前代码项目的GitLab合并请求,便于在本地快速了解合并请求相关信息,可用于本地进行人工代码评审。
使用说明:
1.VS Code
在这里插入图片描述
2. JetBrains / Android Studio
在这里插入图片描述

8.3 IDE侧文件级代码评审

在IDE侧对于GitLab中的合并请求逐文件进行AI评审,常用于开发人员自评审。
使用说明:
1.VS Code
在这里插入图片描述
2.JetBrains / Android Studio
在这里插入图片描述
操作步骤:

  1. 在该项目中,我已提前创建了一个合并请求,并在源分支feat/add-some-problems-for-testing中人为引入了一些代码问题。
    在这里插入图片描述在这里插入图片描述
  2. 在IDE插件侧,打开该合并请求,进入Overview页面,点击“文件级 AI CodeReview”,CodeRider会将合并请求中涉及变更的文件逐个进行评审,并给出评审建议。
    在这里插入图片描述
    3.如有需要,可以点击“提交当前评论”或“提交全部评论”,将AI的评审建议写入到GitLab合并请求中。

8.4 代码评审Agent

通过GitLab Webhook自动触发AI代码评审,或按需手动触发AI代码评审,并将评审意见写入到GitLab合并请求网页中,常用于企业流程化的代码评审。
需注意,目前AI还不具备替代人工代码评审的能力,在实践中建议AI+人工代码评审结合,AI代码评审可以快速、高效发现一些代码质量、风险问题,给开发、评审人员一些参考建议,但会存在一定程度上的误报、漏报,需要人工确认。此外AI代码评审还与模型的参数量有直接依赖关系,模型参数越大,上下文越多,评审效果越好。
启用代码评审Agent需要GitLab代码仓库或群组Owner或Maintainer角色的用户,可以给指定的代码仓库配置,也可以给某个群组配置,则该群组下的所有代码仓库都启用代码评审Agent功能。
操作步骤:
1.设置GitLab Webhook:
URL:
CodeRider SaaS: https://coderider.jihulab.com/api/v1/webhook
CodeRider 私有化:<coderider_url>/api/v1/webhook
Secret 令牌
CodeRider SaaS: 联系极狐GitLab工作人员申请
CodeRider 私有化:联系CodeRider管理员获取
触发来源:评论、合并请求
SSL验证:
CodeRider SaaS:开启
CodeRider 私有化:关闭
2.添加CODERIDER_AGENT账号添加到该项目中,并分配Developer角色。
在这里插入图片描述
3.新建的MR会自动触发AI代码评审。
4.已经存在的MR或有新代码提交的MR需要手动触发AI代码评审,在MR的评论区输入:@CODERIDER_AGENT /coderider-review,添加评论,等待数分钟刷新页面。
在这里插入图片描述
5.CodeRider会自动总结合并请求描述:
在这里插入图片描述
6.CodeRider会自动生成审查建议概览:
在这里插入图片描述
7.CodeRider会自动对审核问题给出解释说明,并给出修复后的代码建议。开发人员可以根据实际情况采纳或忽略CodeRider给出的评审建议。您也可以点击“应用建议”,将CodeRider提供的代码建议直接提交到GitLab中。
在这里插入图片描述

8.4.1 自定义评审规则
CodeRider支持在代码仓库级别自定义评审规则,可满足企业内多部门、多团队、多语言项目对于代码评审的差异化需求。
操作步骤:
在本示例中,基于IDE侧文件级代码评审章节创建的分支feat/add-some-problems-for-testing,再新建一个分支feat/custom-codereview-rules用来配置自定义评审规则,并对比区别。
在这里插入图片描述

2.在feat/custom-codereview-rules分支根目录中创建配置文件.coderider-review.toml,内容如下:
在这里插入图片描述
3.对比不同分支的评审结果:
a.feat/add-some-problems-for-testing分支
审查建议概览规则:无
在这里插入图片描述
只列出代码命名规范问题,不要列出其他问题。
代码建议规则:无
在这里插入图片描述
b.feat/custom-codereview-rules分支
审查建议概览规则:只列出代码命名规范问题,不要列出其他问题。
在这里插入图片描述
代码建议规则:只列出SQL注入问题,不要列出其他问题。
在这里插入图片描述
8.4.2 SAST安全报告解析
若您是GitLab旗舰版用户,使用了GitLab的SAST静态安全测试功能,可以使用CodeRider解析SAST报告,并用于代码评审。
操作步骤:
在本示例中,基于IDE侧文件级代码评审章节创建的分支feat/add-some-problems-for-testing,再新建一个分支feat/sast-codereview用来配置自定义评审规则,并对比区别。
在feat/sast-codereview分支中参考GitLab官方文档配置SAST,需显示声明测试报告作为制品:
在这里插入图片描述
3.查看feat/sast-codereview分支的合并请求,可以看到GitLab旗舰版的SAST安全扫描报告:
在这里插入图片描述
4.CodeRider会参考SAST测试报告给出审查建议概览,有黄色三角标识的内容为SAST报告中的问题。
在这里插入图片描述

5.CodeRider也会对于SAST问题给出代码建议,帮助研发人员快速修复安全问题。
在这里插入图片描述

9.GitLab流水线生成与排错

10. 知识库问答

在这里插入图片描述

基于知识库的项目引导类似,用户可以将企业文档上传到GitLab中,并在CodeRider中建立知识库,可在CodeRider中基于具体的文档内容进行问答对话。CodeRider目前支持以下文件格式:.txt、 .doc、 .docx、 .ppt、 .pptx、 .md、 .mdx、 .pdf 。
使用说明:
VS Code
1.将文档上传到GitLab代码库中,复制代码仓库Git地址:
在这里插入图片描述

2.进入知识库管理页面:
在这里插入图片描述

3.创建知识库:
知识库URL为第1步代码仓库Git地址。
类型为“文档”。
别名可按需设置。
分支名留空为默认分支。
4.等待知识库创建,注意:
测试期间不要使用超过1000个文件的GitLab代码项目,否则会报错。
创建知识库需要较长时间,每个文件需要10秒左右,根据总文件数量预计需要数分钟到数小时间。尽量选择在下班时间创建知识库,且不要聚集,以免影响服务器性能。
5.点击“刷新”可以查看创建进度。
6.等待知识库创建完毕,勾选该知识库。
在这里插入图片描述
2.JetBrains / Android Studio
1.将文档上传到GitLab代码库中,复制代码仓库Git地址:
在这里插入图片描述

2.进入知识库管理页面:
在这里插入图片描述

3.创建知识库:
类型为“文档”。
知识库URL为第1步代码仓库Git地址。
别名可按需设置。
分支名留空为默认分支。
4.等待知识库创建,注意:
测试期间不要使用超过1000个文件的GitLab代码项目,否则会报错。
创建知识库需要较长时间,每个文件需要10秒左右,根据总文件数量预计需要数分钟到数小时间。尽量选择在下班时间创建知识库,且不要聚集,以免影响服务器性能。
点击“刷新”可以查看创建进度。
5.等待知识库创建完毕,勾选该知识库。
6.若代码库中的文档有更新,需重新索引知识库:
在这里插入图片描述

操作步骤:
1.在IDE插件对话框,@极狐员工手册,输入“上班时间”,CodeRider会根据具体的文档作出回答。
在这里插入图片描述

11.其他功能

11.1 网页端
CodeRider提供了网页端,支持对话、知识库问答功能,便于非技术人员使用。
CodeRider SaaS 网页端:https://coderider.jihulab.com/chat
CodeRider 私有化 网页端: <coderider_url>/chat
操作步骤:
1.访问CodeRider网页端。
2.可进入“知识库配置”创建或勾选需要使用的知识库。
在这里插入图片描述

3.在对话框中@极狐员工手册输入“上班时间”,CodeRider会根据具体的文档作出回答。
在这里插入图片描述

4.CodeRider网页端暂不支持移动设备访问。
深度思考 [SaaS] [推理版]
若您使用CodeRider SaaS或CodeRider 私有化推理版,可以在IDE插件和网页端使用深度思考模式。深度思考模式使用推理模型来提供问答服务,对于逻辑性较强的问题可获得更好的答案。但深度思考模式需要更多时间来回答问题,响应速度较慢。
使用说明:
1.VS Code
在这里插入图片描述
2.JetBrains / Android Studio
在这里插入图片描述

3.网页端
在这里插入图片描述

操作步骤:
1.开启深度思考,输入问题“java 8的项目可以运行在 java 23中么?”,CodeRider会使用推理模型开始推理思考。
在这里插入图片描述

2.当推理结束后,根据推理过程作出回答。
在这里插入图片描述

11.3 管理后台

CodeRider私有化版提供了管理后台,支持用户与权限管理、提示词配置、效能看板等功能,仅供CodeRider管理员使用。
CodeRider管理后台地址为:<coderider_url>/admin

12.常见问题

1.VSCode 插件无法登录
确认CodeRider登录地址、用户账号是否正确。
检查代理设置, “首选项——设置——Proxy Support”,设置为“off”,重启VSCode。
2.功能报错或功能无法使用
获取CodeRider日志(展开查看日志获取方式),并将日志反馈给极狐GitLab解决方案架构师。
VSCode
a.在插件设置中勾选“Debug:Enable”,“Debug:Verbose”。
在这里插入图片描述

b.在 VSCode 界面,从菜单选择“查看”->“输出”。
c.在“输出”窗口右上角的下拉框分别选择“CodeRider”、“CodeRider NetWork”、“GitLab WorkFlow”。
在这里插入图片描述

逐个导出日志“CodeRider”、“CodeRider NetWork”、“GitLab WorkFlow”。
在这里插入图片描述

JetBrains
a.开启详细日志模式
在这里插入图片描述

b.从菜单选择 Help->Show Log in Finder/Explorer
c.idea.log 文件