跳转到主要内容
Devin Docs home page
简体中文
搜索...
⌘K
Ask AI
Support
Devin
Devin
搜索...
Navigation
教程
代码覆盖率
文档
企业版
使用场景和教程
API 参考
发行说明
概览
概览
最佳实践
使用场景
Java 升级
COBOL 现代化
清理工程积压
SAS 到 PySpark 的迁移
从 JavaScript 迁移到 TypeScript
从 NoSQL 迁移到 SQL
提示词
测试与重构
数据与分析
网页爬取与自动化
交互式应用
迁移与现代化
教程
API 集成
代码覆盖率
容器化
管理前端组件
MCP 用例
在此页面
使用 Devin 提升代码覆盖率
初始提示
建立覆盖率基线
制定改进计划
代码审查
教程
代码覆盖率
Devin 可以分析您的代码库测试套件,并为您的团队编写更多测试以提高代码覆盖率。
使用 Devin 提升代码覆盖率
大多数生产环境中的应用都没有达到 100% 的代码覆盖率。工程团队必须严格划分优先级,通常会把精力集中在关键路径上编写测试,以最大化投入产出比。Devin 可以通过分析代码库中现有测试套件的风格和结构,弥补这一差距,提升那些虽然不是最关键但仍然很重要的函数的覆盖率。
在这个示例中,我们将使用一个基于 RealWorld 规范的开源 TypeScript 示例应用。该项目已经包含了一些测试,但覆盖率并不全面:
https://github.com/SeuRonao/realworld-express-prisma
你可以在
这里
查看本次 Run 的完整过程,或者继续阅读本文余下内容,逐步了解 Devin 的处理流程。我们将重点展示 Devin 的 Workspace 中的不同部分,例如 Editor 和 Shell。
初始提示
我们首先用一个简单的提示开始本次 Run,指示 Devin 设置开发环境并评估我们应用现有的代码覆盖率:
在其 Shell 中,Devin 首先从 GitHub 克隆我们的仓库,解析 README 文件,并在本地环境中安装项目依赖。
接着 Devin 使用其内置编辑器创建
.env
文件,以便应用可以在本地运行。与 Devin 协作时,你也可以自行打开 VS Code 进行手动编辑,或审查 Devin 正在处理的文件。
建立覆盖率基线
接下来 Devin 会在它的 Shell 中运行测试套件。Devin 的一大优势在于,它不仅可以为你的团队修改或创建代码,还可以直接在它的 Browser 和 Terminal 中操作,对你的代码库、开发环境,甚至正在运行的应用执行更高层次的交互。
下面我们可以看到 Devin 如何理解并将它在 Shell 中得到的结果整理到我们的对话中,使其更加易于阅读并提炼出关键信息。
制定改进计划
现在我们可以开始着手当前的核心任务:提高代码覆盖率。看起来 profileViewer.ts 是一个很好的起点,因为它在默认情况下几乎没有任何覆盖率。我们让 Devin 规划下一步操作,它会在整个过程中向我们汇报当前的进展。
Devin 能够读取现有文件,根据已有功能判断我们可能需要实现哪些测试用例,然后在无需任何人工干预的情况下为我们实际编写这些新测试。完成新测试用例的实现后,Devin 会向我们给出它所做更改的最终总结:
代码审查
它还会把这个新文件提供给我们,这样我们就可以下载并进行审查。或者,我们也可以让 Devin 使用这个新文件
直接在 GitHub 上创建一个拉取请求(PR)
,这样就能把它纳入我们常规的代码审查流程中进行查看。我决定直接在 Devin 内置的编辑器里审查它,这样就不需要下载文件了。
整体来看这些更改都不错,但我们还需要确保没有遗漏任何运行时问题,因此我们让 Devin 再次运行测试套件并汇报结果。
测试按预期通过,并且我们把整体函数覆盖率从 28.57% 提升到了 57.14%,这正是我们想要达到的目标。整个过程 Devin 实际工作时间不到 10 分钟就完成了,尽管我们中途离开了一会儿,晚些才给 Devin 下一组指令。你只需把这项工作委托给 Devin,就可以提升测试覆盖率,并从工程团队的待办事项中移除一项繁琐任务。
如果你发现自己经常使用 Devin 来提升代码覆盖率,你甚至可以把这个提示词整理成一个
详细的 Playbook
,这样就能为应用的不同部分轻松发起新的 Run。如果你想进一步了解 Devin 擅长处理哪些类型的 Prompt,可以在文档中阅读我们的一些
示例
。
API 集成
容器化
⌘I