Neo4j和Ruby:如何加快单元测试?
我开始按照 其中一种方法非常慢(每次测试10秒),另一种方法不删除标签(可能还有其他东西)Neo4j和Ruby:如何加快单元测试?,ruby,unit-testing,neo4j,neo4j.rb,Ruby,Unit Testing,Neo4j,Neo4j.rb,我开始按照 其中一种方法非常慢(每次测试10秒),另一种方法不删除标签(可能还有其他东西) 有人能提出一个更详细的方法吗?我注意到,在核心neo4j材料中,java文档描述了这一点,但我没有看到从(非常好的)ruby和rails neo4j gems中访问这些内容的方法。也许通过低级RESTAPI?很难确定哪些api调用可用 因此,您可以将测试围绕在事务中,这是使用Ruby中的ActiveRecord进行测试的典型方法。这可能会提高性能,但也有助于保持数据库干净 但是你是对的,非永久数据库是Ne
有人能提出一个更详细的方法吗?我注意到,在核心neo4j材料中,java文档描述了这一点,但我没有看到从(非常好的)ruby和rails neo4j gems中访问这些内容的方法。也许通过低级RESTAPI?很难确定哪些api调用可用 因此,您可以将测试围绕在事务中,这是使用Ruby中的
ActiveRecord
进行测试的典型方法。这可能会提高性能,但也有助于保持数据库干净
但是你是对的,非永久数据库是Neo4j中为测试临时数据库提供的工具。不过,我认为只有在运行JRuby时才可以使用。不过,我确实遇到了这个问题:
链接到一个项目,该项目允许您在“内存”模式下启动Neo4j服务器(使用非永久数据库):
这显示了Neo4j 2.0.0的示例,因此我不知道它是否适用于更高版本,但对于您的测试数据库来说,这可能值得一试
编辑:我刚刚想到的另一件事是使用vcr
gem:
它基本上会记录向服务器发出的所有请求,然后播放它们。这对于结果为幂等的API端点非常有效,但如果您将其用于Neo4j之类的数据库,则应确保在每次测试运行之前清除数据库,以便它总是重新启动