Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j和Ruby:如何加快单元测试?_Ruby_Unit Testing_Neo4j_Neo4j.rb - Fatal编程技术网

Neo4j和Ruby:如何加快单元测试?

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

我开始按照

其中一种方法非常慢(每次测试10秒),另一种方法不删除标签(可能还有其他东西)


有人能提出一个更详细的方法吗?我注意到,在核心neo4j材料中,java文档描述了这一点,但我没有看到从(非常好的)ruby和rails neo4j gems中访问这些内容的方法。也许通过低级RESTAPI?很难确定哪些api调用可用

因此,您可以将测试围绕在事务中,这是使用Ruby中的
ActiveRecord
进行测试的典型方法。这可能会提高性能,但也有助于保持数据库干净

但是你是对的,非永久数据库是Neo4j中为测试临时数据库提供的工具。不过,我认为只有在运行JRuby时才可以使用。不过,我确实遇到了这个问题:

链接到一个项目,该项目允许您在“内存”模式下启动Neo4j服务器(使用非永久数据库):

这显示了Neo4j 2.0.0的示例,因此我不知道它是否适用于更高版本,但对于您的测试数据库来说,这可能值得一试

编辑:我刚刚想到的另一件事是使用
vcr
gem:

它基本上会记录向服务器发出的所有请求,然后播放它们。这对于结果为幂等的API端点非常有效,但如果您将其用于Neo4j之类的数据库,则应确保在每次测试运行之前清除数据库,以便它总是重新启动