Unit testing 在Neo4j中恢复单元测试的测试数据库

Unit testing 在Neo4j中恢复单元测试的测试数据库,unit-testing,neo4j,Unit Testing,Neo4j,我想针对预填充的Neo4j数据库对CRUD操作进行单元测试 我认为这样做的一个方法可能是: 创建一个空数据库(我们称之为testDB) 创建数据库备份(我们称之为testingBackup) 在运行测试时: 从testDB 从testingBackup 在现在填充的testDB上运行单元测试查询 我知道备份/恢复功能、加载/转储功能以及从csv导出到csv/load等。但是,我不确定哪一项最适合使用,也最容易实现自动化。我在Ubuntu上使用python 随着应用程序的发展,我需要能够快

我想针对预填充的Neo4j数据库对CRUD操作进行单元测试

我认为这样做的一个方法可能是:

  • 创建一个空数据库(我们称之为
    testDB
  • 创建数据库备份(我们称之为
    testingBackup
  • 在运行测试时:
    • testDB
    • testingBackup
    • 在现在填充的
      testDB上运行单元测试查询
我知道备份/恢复功能、加载/转储功能以及从csv导出到csv/load等。但是,我不确定哪一项最适合使用,也最容易实现自动化。我在Ubuntu上使用python

随着应用程序的发展,我需要能够快速、轻松地更改备份数据


请问最好的方法是什么?

我有一些类似的东西,但有一些警告。我使用Java和testcontainers做过类似的测试。另外,我没有使用neo4j。我在测试中使用了postgress、sqlserver和mongodb。对neo4j使用相同的技术应该与其中一种类似。我将发布mongodb/springboot/java的github示例链接。看一看

其思想是从测试中旋转一个testcontainer(即,用于测试的docker容器),用数据填充它,使应用程序将其用于数据库,然后在最后断言

在您的示例中,没有testingbackup。仅包含数据的csv文件

-您的测试使用测试中的neo4j启动一个testcontainer(这是您的testdb)

-将csv加载到此容器中

-获取testcontainer的ip、端口、用户和密码(这部分取决于testcontainer可用的数据库映像类型。有些映像允许您设置自己的端口、用户ID和密码。有些映像不允许。)

-将这些详细信息传递给您的应用程序并启动它(我不确定这一部分在python应用程序中如何工作。这是您自己的部分。请参阅下面我为python/testcontainer示例找到的博客链接。我使用了spring boot应用程序。您可以在github中查看我的代码)

-完成后,执行对容器化neo4j和assert的查询

-当测试结束时,容器与数据一起被丢弃

-对csv文件进行任何更改都可以为您的测试创建新的场景

-根据需要创建另一个csv文件/测试

这里是链接

test4j模块

详细介绍testcontainers和python的博客。

我的github链接到mongodb/springboot和sqlserver/springboot示例。 总有一天我也会添加一个neo4j样本。

谢谢,我来看看。