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