强制 couchbase 在集成测试时更新视图索引

Force couchbase to update view index while integration testing

我希望对我的 Couchbase 实现进行集成测试,但我 运行 遇到了 Couchbase 的最终一致性问题。在生产中,我的数据过时是完全可以的,但在测试时我想插入一些数据,然后验证我是否通过我的各种服务取回了它。如果数据过时,这将不起作用,因为我的测试期望无法解释这一点。

我可以通过在 Couchbase 客户端中将 staleState 设置为 false 来解决这个问题,但这意味着我进行的每个测试都会触发索引的重建并增加它们的 运行 时间。

有没有办法强制 Couchbase 触发一次性重建设计文档的索引?本质上,我想上传我所有的测试数据,触发重建,然后执行我的测试用例。

此外,如果有更好的 Couchbase 集成测试模式,我很想听听。

谢谢,

男.

如果实际上有更多数据需要进入索引,Couchbase 只会在设置 stale=false 时重建视图索引。您的第一个 stale=false 可能需要一些时间,但即使设置了 stale=false,只要您不向集群中放入更多数据,其余调用也应该很快。

对于所有后续调用,由于要检查索引以确保它是最新的,因此会有一小段(毫秒或更短)延迟。如果您不想要这个,您可以 运行 使用 stale=true 的查询,只要您不再插入任何数据,您应该会得到正确的结果。

最后要注意的是,视图索引构建是增量式的,因此它们永远不会重建整个索引。