mcpField
D
detect-duplicate-test-cases

detect-duplicate-test-cases

github.com/testomatio测试与质量16104 次安装6 天前更新
代码仓库

关于 detect-duplicate-test-cases

用于扫描项目中的手动和自动化测试用例,识别重复或覆盖重叠的测试,并提出整理建议。它会按相似度分级和分组,且只有在用户批准后才执行合并、删除或保留操作。

主要功能

  1. 01扫描手动与自动化测试
  2. 02比较标题、步骤与断言
  3. 03按四级检测结果分类
  4. 04生成重复项报告与建议
  5. 05获批后合并、删除或保留测试
  6. 06保留测试结构与追溯信息

适用场景

  1. 01整理大型测试仓库中的重复用例
  2. 02查找语义相近或覆盖重叠的测试
  3. 03在批准后合并冗余测试并保留追溯信息

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/testomatio/skills --skill detect-duplicate-test-cases

安装后在 Claude Code 中输入/detect-duplicate-test-cases确认已加载。

附带文件references/DUPLICATE_INSTRUCTIONS.md

详细介绍

检测重复测试用例

检测用户项目中的重复测试用例,并推荐清理操作。

工作流

1. 收集测试用例
  • 查找仓库中所有手动和自动化测试用例。
    • 手动:/tests/ 中的 Markdown 文件、.feature 文件(Gherkin)。
    • 自动化:*.spec.ts、*.test.js、*.cy.js 等。
  • 解析每个测试,提取:标题、步骤、预期结果、标签和套件位置。
2. 分析重复项

在比较前规范化测试内容:

  • 将标题转换为小写。
  • 去除标点和格式差异。
  • 尽可能统一步骤表述。
  • 分析测试意图时忽略框架语法(describe、Scenario、it 等)。
  • 将参数化值(电子邮件、ID、用户名)视为可变数据。

使用多种相似度信号比较测试:

  • 标题相似度。
  • 步骤相似度。
  • 预期结果相似度。
  • 前置条件或设置。
  • 共享标签或元数据。
  • 测试位置或套件上下文。

根据 ./references/DUPLICATE_INSTRUCTIONS.md 中的评分规则为每对测试评分。 将每对测试归入一个检测级别(定义见同一参考文件):

  • Level 1:完全重复。
  • Level 2:语义重复。
  • Level 3:重叠/子集测试。
  • Level 4:冗余变体。

将代表相同测试意图的多个测试归为重复组。 每组包含:

  • 所有关联测试。
  • 相似度分数。
  • 检测级别。
  • 建议的规范测试。
3. 生成报告

遵循 ./references/DUPLICATE_INSTRUCTIONS.md 中的报告模板。报告包含:

  • 摘要统计(扫描总数、按类别统计的重复项)。
  • 每个重复组及其测试详情和位置。
  • 相似度百分比。
  • 每组的建议(keep/merge/remove)。
  • 建议操作。
4. 执行操作

仅在用户批准建议后应用操作。

  • Merge:将重复或高度相似的测试合并为一个规范测试。
    • 保留框架使用的原始测试结构(例如,Gherkin、Markdown、Jest、Cypress)。
    • 保留规范测试中的主测试 ID。
    • 合并所有源测试的标签、标记和元数据(尽可能去重)。
    • 保留重要断言、步骤和预期结果。
    • 添加对已合并的原始测试文件或 ID 的引用。
  • Remove:删除重复或冗余的测试文件或测试条目。
    • 确保规范测试或替代测试已存在。
    • 在规范测试中添加注释,注明已删除的测试。
    • 不要删除包含独有步骤、标签或覆盖范围的测试。
  • Keep:保留两个测试,但记录它们之间的关联。
    • 在相关测试之间添加交叉引用注释。
    • 说明保留两个测试的原因(例如,环境、数据集或覆盖范围不同)。

保留规则

合并或重写测试时,请保留:

  • 测试 ID:保留规范 ID,并引用所有已合并的 ID。
  • 标签/标记:保留并合并所有相关标签。
  • 框架结构:保持原始格式(例如,Scenario、describe/it、Markdown 章节)。
  • 文件组织:遵循现有的测试目录约定。
  • 可追溯性元数据:保留指向需求、问题或工单的链接(如果存在)。

重写测试时,切勿破坏框架语法或删除可追溯性元数据。

评论

支持 Markdown