我在让我的规格在我们的CI服务器(Codeship)上干净利落地运行时遇到了问题。
规范在本地运行正常,但似乎在CI服务器上,elasticsearch正在保持同步问题。
我已经研究过这个问题,并找到了潜在的解决方案,但没有一个能够解决问题。
我遇到的第一个解决方案是在需要重新索引时为测试套件创建一个辅助方法。
def refresh_elasticsearch(model)
model.reindex
model.searchkick_index.refresh
end
如果没有这个,我的本地规格就失败了,因为没有找到文件。一旦我开始调用辅助方法,一切都开始工作了。
我有2个具有弹性搜索功能的控制器,其中只有一个在Codeship上运行正常,这很奇怪。这些控制器彼此非常相似,所以我真的很困惑为什么一个控制器规范一直通过而另一个没有。
没有抛出任何异常,只是一些基本的期望失败,因为我期待一个文件,但却找不到。
我也尝试了所有这些解决方案: https://github.com/ankane/searchkick/pull/95
所有这些解决方案都在本地BTW工作。但是它们在CI服务器上出于同样的原因都失败了。
我在这一点上已经没事了。有任何想法吗??
感谢任何帮助。谢谢!