在 JUnit 中模拟 Git 存储库

Emulate Git repo in JUnit

在最近的项目中,我需要测试使用特定 Git 存储库的 Java class。要使 class 正常工作,它必须获取存储库的路径,然后发挥它的魔力。

我感兴趣的是是否可以在 JUnit 中模拟 Git 存储库,或者通过任何其他方式提供一个模拟存储库来测试 class。

使用专用于此测试的实际 Git 存储库是一种选择,但由于环境的性质,可能很难确保测试可以来自每台机器 运行其他开发人员可能会使用 运行 测试。此外,实际的存储库并不小,克隆它至少需要 10 分钟。

到目前为止,我无法找到任何方法来模拟在 JUnit 测试中可能有 10 - 15 次提交的存储库 class,所以欢迎大家提出建议。

哦,是的,存储库最好也有多个 subrepositories/submodules,但我也很高兴有一个提供单个存储库的解决方案。

几个建议:

  1. 是否可以将您的存储库部分包含在测试资源中?
    • 在这种情况下,您将不必一遍又一遍地克隆它。
  2. 有更高级别的 Java API 可以使用 git 存储库进行操作。