Skip to content

[libra] 为add、diff和rm命令补充测试用例 #1257

Description

@Ming0213

[具体描述]
Libra模块目前有许多命令缺乏完整的测试用例。特别是add、diff和rm命令,要么没有测试用例,要么测试覆盖率不够。本任务旨在为这三个命令添加完整的测试用例,以确保它们的功能正确性和稳定性。
当前存在的问题:
add命令:没有任何集成测试用例,无法验证其功能的正确性。
diff命令:只有一些单元测试,缺少集成测试,无法验证完整流程。
rm命令:没有任何测试用例,无法验证其功能的正确性。

[实现方案]

  1. 为add命令添加测试用例
    add命令的主要功能是将文件内容添加到索引中,需要测试以下场景:
    基本功能测试
    添加单个新文件到索引
    添加多个文件到索引
    使用--all参数添加所有文件
    使用--update参数只更新已跟踪的文件
    添加目录中的所有文件
    添加被修改的文件
    测试忽略文件(.libraignore)功能
    测试实现方式
    在临时目录中创建新的Libra仓库
    创建、修改或删除文件
    运行add命令
    验证索引状态是否与预期一致
  2. 为diff命令添加测试用例
    diff命令用于显示提交之间、提交和工作树之间等的变更。需要测试以下场景:
    基本功能测试
    显示工作目录与HEAD之间的差异
    显示工作目录与暂存区之间的差异
    显示不同算法(histogram、myers、myersMinimal)下的差异输出
    显示两个特定提交之间的差异
    测试指定文件路径的差异
    测试输出到文件的功能
    测试实现方式
    创建测试仓库并进行初始提交
    对文件进行修改
    运行diff命令并验证输出
  3. 为rm(remove)命令添加测试用例
    rm命令用于从工作树和索引中删除文件。需要测试以下场景:
    基本功能测试
    删除单个文件
    使用--cached参数只从索引中删除文件
    使用-r参数递归删除目录
    测试删除不存在于索引中的文件(应该失败)
    测试不使用-r参数删除目录(应该失败)
    测试删除已修改的文件
    测试实现方式
    创建测试仓库
    添加文件到索引和工作树
    运行rm命令
    验证文件是否从工作树和索引中删除

Metadata

Metadata

Assignees

Labels

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions