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