当我使用git bisect命令时,我只运行失败的测试 Java程序的每个二分点。但是,我看到许多与git bisect相关的教程提议运行" make;进行测试"。我有什么理由在每一步都进行所有测试吗? 非常感谢。
答案 0 :(得分:1)
如果:
然后是的,只运行失败的测试来加速二分过程是安全的。您可以从测试结果中推断出其他测试应该通过的好的和坏的提交。
在任何情况下修复有问题的bug后,您可能会重新运行完整的测试套件,这将涵盖您的bugfix引入回归的情况。
答案 1 :(得分:1)
我不得不说@bcmcfc提到的条件是必要的,但还不够。作为参考,他的条件是
我的问题是不知道good
提交和bad
之间发生了什么。例如,在干预提交中是否发现并修复了另一个错误?可以想象 错误或其修复影响此错误。
另一个问题是可能存在"脏"承诺在历史上。我不知道您的使用模式,但有些人允许在功能分支上出现失败测试的提交。 bisect
可以登陆这些提交,如果你只运行你期望失败的测试,你可能无法完全理解该提交中发生的事情,这可能会导致你误入歧途。甚至可能是该bug被引入然后在该功能分支中修复,然后稍后在另一个功能分支上以稍微不同的方式再次引入,这将真正混淆您修复它的努力。
在我看来,这是古老格言的一个例子,"从理论上讲,理论和实践之间没有区别,但在实践中却存在。"我每次都会进行每次测试。如果他们都通过你期望的地方,那么你不应该觉得你已经浪费了你的努力,你应该充满自信地知道你知道正在发生什么