我正在使用Spring Data Neo4j,在Spring中创建了一个应用程序。我可以在JUnit测试用例的帮助下运行我的应用程序。但每次运行我的测试用例时,它都会在使用<neo4j:config storeDirectory="target/neo4j-db"/>
指定的目录路径中创建一个新数据库。这会在我的工作空间存在于Eclipse中的相同位置创建db。
我在我的ubuntu中安装了Neo4j debian软件包,默认情况下在/var/lib/neo4j/data/graph.db
中有数据库。我希望我的应用程序使用此数据库,而不是在target/neo4j-db
中创建该数据库。我尝试将target/neo4j-db
替换为/var/lib/neo4j/data/graph.db
并已授予读取和写入数据库的权限。但它不起作用。
这种配置有什么问题?我错过了什么吗?
答案 0 :(得分:3)
要针对Neo4j数据库运行JUnit测试,您有3个选择
@Rollback(false)
。必须这样做是因为SpringJUnit4ClassRunner.class将回滚在测试期间对数据库所做的所有更改。使用 REST 方法(并再次使用@Rollback(false)
的技巧获取SpringJUnit4ClassRunner.class)。为了使其与本地方法相反,您必须在运行测试之前启动Neo4j服务器。您还必须像下面这样配置xml文件:
<neo4j:config graphDatabaseService="graphDatabaseService"/>
<bean id="graphDatabaseService" class="org.springframework.data.neo4j.rest.SpringRestGraphDatabase">
<constructor-arg value="http://localhost:7474/db/data/" index="0" />
</bean>
<neo4j:config graphDatabaseService="graphDatabaseService"/>
<bean id="graphDatabaseService" class="org.neo4j.test.ImpermanentGraphDatabase" destroy-method="shutdown"/>