8

是否有 CouchDB 的模拟后端,即相同的 REST 接口和语义但纯粹在内存中?我们有一个测试套件,每次都在原始数据库上运行每个测试(可重现),但针对真实数据库运行可能会更快。

4

5 回答 5

6

Do you mean running against a mock database?

I do not think there is something right out of the box. Two ideas:

  1. CouchDB on a memory filesystem. Set up a ramdisk, or tmpfs mount, and configure the CouchDB database_dir and view_index_dir to point to there.
  2. PouchDB is porting CouchDB to the browser IndexedDB standard. You did not say which language and environment you are using, but if you can run Node.js, this might be worth looking into. PouchDB has good momentum and I think it will be running in Node.js soon (perhaps through jsdom or some other library. Note, this does not get you the full solution; but you have expanded your question to "are there in-memory IndexedDB implementations for Node.js" for which the answer is either "yes" or "soon," given its adoption trajectory.
于 2012-05-11T02:09:36.690 回答
2

发现这个:https ://github.com/RipcordSoftware/AvanceDB - 它支持不同的平台,似乎是一个认真的努力。

于 2015-10-13T06:55:54.163 回答
2

晚了,但我在使用pouchdb-server基于前面提到的 PouchDB 项目(CouchDB 的 JavaScript 实现)的基础上取得了巨大的成功。它可以针对各种后端运行,包括内存后端。这意味着你可以运行

pouchdb-server --in-memory

获取内存中的 CouchDB 兼容服务器。还有其他几个命令行选项可供探索。

我认为它能够运行整个 CouchDB 测试套件,所以我猜你不太可能遇到太多的实现差异。

于 2016-03-24T15:59:16.427 回答
0

我有同样的问题......对于测试我只是不想设置一个couchdb......我只想拥有一些记忆的东西,尽可能简单。

我做了什么: * 我创建了一个内存 CouchDB 连接器 => 它只是“org.ektorp.CouchDbConnector”的一个非常简单的实现 * 通过弹簧我连接了我需要的 CouchDbConnection-Implementation => 当我将它用于我的开发时-测试我连接我的内存 CouchDB 连接器,如果我想连接到真正的 CouchDb,我使用通常的连接器 => org.ektorp.impl.StdCouchDbConnector

唯一的问题是,“org.ektorp.CouchDbConnector”有 50 多个方法,必须实现。对于我的问题,只实现其中一些方法就足够了。取决于你的测试用例。

于 2015-10-05T20:07:43.543 回答
-1

memorydb是与Kivik一起使用的 CouchDB 的部分(进行中)内存实现,可以作为独立服务器运行。

尚未实现所有功能。

于 2017-10-14T09:48:08.733 回答