2

我正在尝试为将与 Neo4j Graph 数据库接口的 python 项目创建单元测试。

目前,我正在实现嵌入式图形数据库,但如果我选择将其部署到 Web 应用程序,可能会迁移到 REST 接口。我已经安装了嵌入式 neo4j项目的 v1.9rc2 ,通过pip虚拟环境安装。

这里提到了一个 java 类org.neo4j.test.TestGraphDatabaseFactory听起来很适合我的想法。我目前正在读取和写入文件中的数据库,这没关系,但是在不包含调用的 ech 测试之后我无法正确清理shutil.rmtree... 或者应该如何完成?

另一种可能的方法是通过my的setUp和方法为每个测试创建和关闭数据库。tearDownTestCase

>>> import neo4j
>>> print neo4j.__version__
'1.9.c2'
4

2 回答 2

2

最佳实践是使用 setUp/tearDown 为每个测试单独创建和关闭数据库 - 正如您所提到的。

旁注:1.9rc2 已经过时了,考虑升级到最新的稳定版本,因为从那时起已经修复了几个错误。

于 2013-10-28T14:00:39.280 回答
0

这是他们在官方 Python Neo4j 驱动程序中的做法,考虑到它的来源,它可能应该被视为“一个很好的例子”。

class ServerTestCase(TestCase):
""" Base class for test cases that use a remote server.
"""

known_hosts = KNOWN_HOSTS
known_hosts_backup = known_hosts + ".backup"

def setUp(self):
    if isfile(self.known_hosts):
        if isfile(self.known_hosts_backup):
            remove(self.known_hosts_backup)
        rename(self.known_hosts, self.known_hosts_backup)

def tearDown(self):
    if isfile(self.known_hosts_backup):
        if isfile(self.known_hosts):
            remove(self.known_hosts)
        rename(self.known_hosts_backup, self.known_hosts)

这是完整的源文件:https ://github.com/neo4j/neo4j-python-driver/blob/1.1/test/util.py

于 2016-11-10T16:09:10.827 回答