python unittests中的Neo4j无常数据库
我正在尝试为一个python项目创建单元测试,该项目将与Neo4j图形数据库接口 目前,我正在实现嵌入式图形数据库,但如果选择将其部署到web应用程序,则可能会迁移到REST接口。 我安装了嵌入式neo4j的v1.9rc2,通过虚拟环境中的python unittests中的Neo4j无常数据库,python,unit-testing,neo4j,Python,Unit Testing,Neo4j,我正在尝试为一个python项目创建单元测试,该项目将与Neo4j图形数据库接口 目前,我正在实现嵌入式图形数据库,但如果选择将其部署到web应用程序,则可能会迁移到REST接口。 我安装了嵌入式neo4j的v1.9rc2,通过虚拟环境中的pip安装 有人提到一个java类org.neo4j.test.TestGraphDatabaseFactory,这听起来非常符合我的想法。我目前正在读取和写入文件中的数据库,这是正常的,但我在ech测试后无法正确清理,该测试不包括调用shutil.rmtre
pip
安装
有人提到一个java类org.neo4j.test.TestGraphDatabaseFactory
,这听起来非常符合我的想法。我目前正在读取和写入文件中的数据库,这是正常的,但我在ech测试后无法正确清理,该测试不包括调用shutil.rmtree
。。。还是应该这样做
另一种可能的方法是通过我的TestCase
的setUp
和tearDown
方法为每个测试创建和关闭数据库
>>> import neo4j
>>> print neo4j.__version__
'1.9.c2'
最佳实践是使用setUp/tearDown为每个测试分别创建和关闭数据库,正如您所提到的
旁注:1.9RC2是相当过时的,因为从那时起已经修复了两个bug。考虑到升级到最新的稳定。
< P>这是他们在官方Python NeN4J驱动程序中所做的,它应该被认为是“一个很好的例子”,考虑到它来自哪里。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)
这是完整的源文件:谢谢,我将更新我的python绑定,看看是否有任何怪癖得到解决。我想避免在每次测试中设置和关闭DB的时间成本,但是如果这是确保正确清理的唯一方法,那么在尝试从中构建最新的repo时获取构建错误也是如此。调用
mvn-e包
在此处生成错误。这是我第一次尝试使用maven构建一个项目,但maven似乎正在寻找neo4j JAR,但却找不到。有什么想法吗?关于你的第一条评论:使用TestGraphDatabaseFactory.newNompanentDatabase()
相当便宜。最大的优点是,您可以在测试之间有一个干净的分隔。我经常看到一些测试相互干扰对代码库的可维护性是有害的。关于第二条评论:尝试mvn安装
。如果出现问题,让我们在单独的一个线程中继续讨论。谢谢Stefan,我的问题在发表此评论后发布,代码已移动,但仍在回购协议中,尽管名称不同。您可以在中的IntegrationTestCase
中找到它。