今天早上我进行了测试,有 2 次失败。但是我几天没有更改任何代码,所有测试都通过了。
根据 Git,没有任何变化(除了 coverage.data,它是测试输出)。gitk 没有显示其他变化。
Git 如何知道代码何时更改?这可能是由 SSD 故障/错误引起的吗?
弄清楚发生了什么的最好方法是什么?
编辑:使用单元测试框架在 Ruby on Rails 中工作。
今天早上我进行了测试,有 2 次失败。但是我几天没有更改任何代码,所有测试都通过了。
根据 Git,没有任何变化(除了 coverage.data,它是测试输出)。gitk 没有显示其他变化。
Git 如何知道代码何时更改?这可能是由 SSD 故障/错误引起的吗?
弄清楚发生了什么的最好方法是什么?
编辑:使用单元测试框架在 Ruby on Rails 中工作。
我首先要弄清楚测试失败的原因,这可能会为您提供一些关于它们以前如何通过的线索。有时这是一个时间问题、间歇性故障、测试工具之外的东西、数据更改、日期或时间的更改,等等。
我看到迈克找到了你的问题(请在小答案框中打勾)。
是的,代码有可能在 Git 不知情的情况下更改。导致失败的文件,可能是临时测试文件或夹具,可以在 .gitignore 或 .git/info/exclude 中被忽略。执行 agit clean -dxf
将清除结帐中 git 不知道的任何内容。 git status --ignored
将显示被 git 忽略的文件。如果是这种情况,您希望在测试运行程序中添加更好的测试清理。
对于后代,这是测试可能失败的简短列表,而 git 没有可见的任何代码更改:
如果 Git 不知道它并将其记录在某处,则您的存储库无法进行任何更改,因为无论如何都需要检索日志才能获取 repo 文件。我会检查一下,这些故障不是由机器上不应该与测试同时运行的东西引起的,或者它可能是你没有预料到的竞争条件。